jquery:如何找到第二个最接近的anscestor?

Arj*_*jun 9 javascript jquery

我的DOM看起来像这样:

<li>
   <li><a class="editEntity>Edit</a></li>
   <li><a class="deleteEntity>Delete</a></li>
</li>
Run Code Online (Sandbox Code Playgroud)

当用户点击"编辑"时,我想更改外部 <li>

$('li a.editEntity').live('click', function() {
    $(this).closest('li').closest('li').addClass('selected');
});
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏.

T.J*_*der 19

上去父母:

$(this).closest('li').parent().closest('li').addClass('selected');
Run Code Online (Sandbox Code Playgroud)

它不起作用,因为closest当前元素开始,所以如果你在匹配选择器的东西上调用它,你会得到与你开始时相同的东西.

实例

或者你可以使用parents:eq选择:

$(this).parents("li:eq(1)").toggleClass("selected");
Run Code Online (Sandbox Code Playgroud)

请注意,:eq使用从0开始的索引,第二个父索引:eq(1)也是如此.li

实例

引用的HTML虽然无效(li 不能直接包含li); 我认为你的意思是:

<li>
   <ul>
      <li><a class="editEntity>Edit</a></li>
      <li><a class="deleteEntity>Delete</a></li>
   </ul>
</li>
Run Code Online (Sandbox Code Playgroud)

......或类似的.