web-dev-qa-db-ja.com

jquery、クラスごとに次の要素を見つける

クラスごとに次の要素を見つけるにはどうすればよいですか?.

$(obj).next('.class');で試しましたが、これは$(obj)親でのみクラスを返します。クラス名ごとにコード全体で次の要素を取得する必要があります。私のコードは

<table>
<tr><td><div class="class">First</div></td></tr>
<tr><td><div class="class">Second</div></td></tr>
</table>

これは可能ですか?

91
Alex

この場合、<tr>thenに移動する必要があります。次のように .next() を使用します。

$(obj).closest('tr').next().find('.class');

または、内部に.classのない行が存在する場合、次のように .nextAll() を使用できます。

$(obj).closest('tr').nextAll(':has(.class):first').find('.class');
127
Nick Craver

同じクラスを持つ次の要素を見つけるには:

$(".class").eq( $(".class").index( $(element) ) + 1 )
15
plavozont

documentationを見れば、このシナリオでnext()を使用することはできません:
Next()Get the各要素の兄弟の直後- 一致した要素のセット内。セレクターが提供されている場合、セレクターに一致する次の兄弟を取得します。

したがって、2番目のDIVが同じTDにあった場合、次のようにコーディングできます。


// Won't work in your case
$(obj).next().filter('.class');


$(obj).parents('table').find('.class')
13
Morteza Manavi