jquery,按类查找下一个元素

Ale*_*lex 93 jquery element class next

我怎样才能按类找到下一个元素.

我试过$(obj).next('.class');但这只返回$(obj)父类中的类.我需要按类名在整个代码中的任何位置使用下一个元素.因为我的代码看起来像

<table>
<tr><td><div class="class">First</div></td></tr>
<tr><td><div class="class">Second</div></td></tr>
</table>
Run Code Online (Sandbox Code Playgroud)

这可能吗?

Nic*_*ver 129

在这种情况下,你需要去到<tr> 利用.next(),就像这样:

$(obj).closest('tr').next().find('.class');
Run Code Online (Sandbox Code Playgroud)

或者如果没有内部可能存在中间行.class,您可以使用.nextAll(),如下所示:

$(obj).closest('tr').nextAll(':has(.class):first').find('.class');
Run Code Online (Sandbox Code Playgroud)

  • @StuR - 这在这里不起作用,因为.nextAll()只查看兄弟元素.您需要查看后代的内容来查找问题所需的下一个<div>. (2认同)

pla*_*ont 17

要查找具有相同类的下一个元素:

$(".class").eq( $(".class").index( $(element) ) + 1 )
Run Code Online (Sandbox Code Playgroud)


Mor*_*avi 14

如果你看一下它所说的文档,你不能在这个场景中使用next():
Next()获得 匹配元素集中每个元素 紧随其后的兄弟.如果提供了选择器,它将检索与选择器匹配的下一个兄弟.

所以,如果第二个DIV在同一个TD中,那么你可以编码:


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

但由于事实并非如此,我认为没有必要使用next().您可以改为编码:

$(obj).parents('table').find('.class')

  • 但它如何找到下一个元素..find会返回所有元素. (4认同)