jquery - 遍历树并找到指定类的元素
问题描述:
我认为closer()函数会为我做这件事,但看起来不是。我有以下的标记,我想一个类添加到所有父锚与类触发:jquery - 遍历树并找到指定类的元素
<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>
我要选择我的目标 - 在这个例子中,最深的锚,然后添加一个类每一个触发其优势。什么是最好的方法来做到这一点?谢谢。
答
下面是使用的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();
});
});
EDIT :
注意$().parents()
遍历树,但$().children()
只遍历一个级别。要收集元素的所有后代,请使用$().find()
。
答
parents
是用于遍历。最多
我认为这应该工作:
$('#my_target').parents('.trigger').addClass('myclass');
但是,对于兄弟姐妹,您需要使用siblings
而不是parents
例如,与#my_target
锚点一起使用的anchor
标签被认为是兄弟姐妹。
我会尽快添加一个jsfiddle示例,只要他们重新联机:) –
http://jsbin.com/oxeyiz/edit#javascript,html,live –
不知道jsbin,谢谢!没有jsfiddle那么干净,但它会在一个捏。 –