1

当您单击触发器时,下面的代码会将第二个 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/

4

0 回答 0