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>
это возможно?
3 ответа:
в этом случае вам нужно подняться до
<tr>
затем использовать.next()
, например:$(obj).closest('tr').next().find('.class');
или если могут быть строки между ними без
.class
внутри, вы можете использовать.nextAll()
, например:$(obj).closest('tr').nextAll(':has(.class):first').find('.class');
вы не можете использовать next () в этом сценарии, если вы посмотрите на документация он говорит:
следующий() получаемсразу после брата каждого элементав наборе совпавших элементов. Если селектор предоставлен, он извлекает следующий брат, соответствующий селектору.
так что если второй DIV был в том же TD, то вы могли бы кодировать:// Won't work in your case $(obj).next().filter('.class');
Но так как это нет, я не вижу смысла использовать next(). Вы можете вместо кода:$(obj).parents('table').find('.class')