我的DOM看起来像这样:
<li>
<li><a class="editEntity>Edit</a></li>
<li><a class="deleteEntity>Delete</a></li>
</li>当二手单击“编辑”时,我想将外部<li>更改为<li class="selected>。
我尝试过这样的方法,但这不起作用:
$('li a.editEntity').live('click', function() {
$(this).closest('li').closest('li').addClass('selected');
});任何帮助都是非常感谢的。
发布于 2011-03-02 19:01:09
转到父级:
$(this).closest('li').parent().closest('li').addClass('selected');它不起作用是因为closest从当前元素开始,所以如果您在与选择器匹配的内容上调用它,您将返回与开始时相同的内容。
Live example
或者,您可以在:eq selector中使用parents
$(this).parents("li:eq(1)").toggleClass("selected");请注意,:eq使用基于0的索引,因此:eq(1)是第二个父li。
Live example
你引用的超文本标记语言是无效的(一个li can't directly contain an li);我想你的意思是:
<li>
<ul>
<li><a class="editEntity>Edit</a></li>
<li><a class="deleteEntity>Delete</a></li>
</ul>
</li>...or类似。
发布于 2011-03-02 19:05:48
您可以使用
$('li a.editEntity').live('click', function() {
$(this).parents('li').addClass('selected');
});发布于 2011-03-02 19:02:16
在我之前的评论之后..下面是我们承诺的例子。:)
$('li').each(function(index) {
alert(index + ': ' + $(this).text());
});在第二个索引处停止
更多信息可以在这里找到
http://api.jquery.com/each/
https://stackoverflow.com/questions/5166485
复制相似问题