Jquery, найти следующий элемент по классу
Как я могу найти следующий элемент по классу.
Я попытался с $(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>
Возможно ли это?
Ответы
Ответ 1
В этом случае вам нужно перейти к <tr>
, а затем использовать .next()
, например:
$(obj).closest('tr').next().find('.class');
Или, если между .class
могут быть строки между ними, вы можете использовать .nextAll()
, например:
$(obj).closest('tr').nextAll(':has(.class):first').find('.class');
Ответ 2
Вы не можете использовать next() в этом сценарии, если вы посмотрите на документация, он говорит:
Next() Получите сразу же после каждого элемента в наборе согласованных элементов. Если предусмотрен селектор, он получает следующий брат, который соответствует селектору.
поэтому, если второй DIV был в одном TD, тогда вы можете закодировать:
// Won't work in your case
$(obj).next().filter('.class');
But since it not, I don't see a point to use next(). You can instead code:
$(obj).parents('table').find('.class')
Ответ 3
Чтобы найти следующий элемент с тем же классом:
$(".class").eq( $(".class").index( $(element) ) + 1 )