jquery, найти следующий элемент по классу - PullRequest
91 голосов
/ 08 сентября 2010

Как я могу найти следующий элемент по классу.

Я пытался с $(obj).next('.class');, но это возвращает классы только в $(obj) parentМне нужно взять следующий элемент в любом месте кода по имени класса.Потому что мой код выглядит как

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

Возможно ли это?

Ответы [ 3 ]

123 голосов
/ 09 сентября 2010

В этом случае вам нужно перейти на <tr> , затем использовать .next(), например:

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

Или, если возможно,между строками без .class можно использовать .nextAll(), например:

$(obj).closest('tr').nextAll(':has(.class):first').find('.class');
15 голосов
/ 14 сентября 2016

Чтобы найти следующий элемент с таким же классом:

$(".class").eq( $(".class").index( $(element) ) + 1 )
12 голосов
/ 08 сентября 2010

Вы не можете использовать next () в этом сценарии, если вы посмотрите на документацию , где написано: Next () Получите сразу после родственного элемента каждого элемента в наборе соответствующих элементов.Если указан селектор, он извлекает следующего брата, который соответствует селектору. так что если второй DIV был в том же TD, то вы могли бы кодировать:

<code>
// Won't work in your case
$(obj).next().filter('.class');
Но так как это не так, я не вижу смысла использовать next ().Вместо этого вы можете код:
<code>
$(obj).parents('table').find('.class')
...