给定以下标记:
<div id="nodes">
<ul>
<li><a href="#">Colors</a>
<ul>
<li><a href="#">Red</a></li>
<li><a href="#">Green</a></li>
<li><a href="#">Blue</a></li>
</ul>
</li>
<li><a href="#">Sizes</a></li>
<li><a href="#">Material</a></li>
</ul>
</div>
我写了一个jQuery函数来添加兄弟节点:
$("#nodes ul li").click(function(e) {
addSibling(this, 'new one');
e.stopPropagation();
});
function addSibling(selector, content){
var markup='<li><a href="#">' + content + '</a></li>';
$(selector).parent().append(markup);
}
起初它似乎工作得很好,只要我点击原始节点。例如,如果我点击“蓝色”,我会得到:
<div id="nodes">
<ul>
<li><a href="#">Colors</a>
<ul>
<li><a href="#">Red</a></li>
<li><a href="#">Green</a></li>
<li><a href="#">Blue</a></li>
<li><a href="#">new node</a></li>
</ul>
</li>
<li><a href="#">Sizes</a></li>
<li><a href="#">Material</a></li>
</ul>
</div>
但是,当我单击新节点时,它没有将新节点作为同级节点,而是向上一级(即“颜色”、“大小”和“材料”的同级节点)。查看 jQuery 生成的标记,我看不出有任何区别,所以我很困惑为什么新节点的行为与原始节点不同。谢谢。