トリガーをクリックすると、以下のコードは最初の 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>
アップデート
指定する必要がありましたが、同じページに複数のトリガーとターゲットが必要です。したがって、このフィドルでは、「トリガー 1」は「4」をターゲットにし、「トリガー 2」は「7」をターゲットにする必要があります。ありがとう