jQuery选择器 - 以更健壮的方式遍历dom?

时间:2012-08-03 16:39:37

标签: jquery

当您点击触发器时,下面的代码将变为第二个div.four红色而不是第一个。

我理解为什么会发生这种情况,但我可以在没有像.nextAll('。parent')这样的东西的情况下解决它.child()?我的html可能会改变,例如第一个div.four可能最终会出现在2个div.parents中,所以id就像一个仍然有效的解决方案。

是否有一种更健壮的方式来遍历dom,例如找到具有某个类的下一个div,而不管它有多少级别?

 $(document).ready(function(){
     $('.trigger').click(function(){
        $(this).nextAll('.four').css('background-color','red');         
     });
 });​

<div class="trigger">trigger</div>
<div class="one">one</div>
<div class="two">two</div>
<div class="three">three</div>
<div class="parent">
   <div class="four">four</div>    
</div>
<div class="four">four</div>    ​

http://jsfiddle.net/g9heg/1/

更新

我应该指定但我需要在同一页面中有多个触发器和目标。所以对于这个小提琴,'触发器1'应该以'四'为目标,而'触发器2'应该以'七'为目标。谢谢

http://jsfiddle.net/g9heg/5/

0 个答案:

没有答案