我认为closest()
函数会为我做这个,但似乎没有。我有以下标记,我想用类触发器向所有父锚添加class
:
<ul>
<li class="selected">
<a class="trigger" href=""></a>
<a href=""></a>
<ul>
<li class="selected">
<a class="trigger" href=""></a>
<a href="" id = "my_target"></a>
</li>
</ul>
</li>
</ul>
我想选择我的目标 - 在此示例中,是最深的锚点,然后在其上方的每个class
中添加a.trigger
。最好的方法是什么?感谢。
答案 0 :(得分:3)
以下示例使用jQuery.parents()
(以获取包含<li>
标记)和jQuery.children()
的组合来获取带有类的<a>
标记触发:
$(document).ready( function() {
$('#my_target').click( function(e) {
$(this).parents('li.selected').children('a.trigger').addClass('myclass');
e.preventDefault();
});
});
编辑:
注意$().parents()
遍历树的所有方向,但$().children()
仅遍历一个级别。要收集元素的所有后代,请使用$().find()
。
答案 1 :(得分:2)
答案 2 :(得分:0)
parents
用于遍历。
我相信这应该有效:
$('#my_target').parents('.trigger').addClass('myclass');
但是对于兄弟姐妹,您需要使用siblings
代替parents
例如,anchor
锚点的#my_target
标记被视为兄弟。