1

トリガーをクリックすると、以下のコードは最初の div.four ではなく 2 番目の div.four を赤にします。

なぜこれが起こっているのか理解していますが、 . nextAll('.parent').child() のようなものなしで解決できますか? 私のhtmlは変更される可能性があります。たとえば、最初のdiv.fourが2つのdiv.parentsになる可能性があるため、引き続き機能するソリューションのようです。

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」は「4」をターゲットにし、「トリガー 2」は「7」をターゲットにする必要があります。ありがとう

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

4

0 に答える 0