jquery, 클래스별로 다음 요소 찾기


102

클래스별로 다음 요소를 어떻게 찾을 수 있습니까?

나는 시도 $(obj).next('.class');했지만 이것은 $(obj)부모의 클래스 만 반환합니다 . 클래스 이름으로 코드 전체에서 다음 요소를 가져와야합니다. 내 코드가

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

이게 가능해?

답변:


145

이 경우 <tr> 다음.next() 과 같이 then use 로 이동해야합니다 .

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

또는 .class내부 없이 중간에 행이있을 수있는 경우 다음 .nextAll()과 같이 사용할 수 있습니다 .

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

이렇게하는 것이 더 쉬울 것입니다 : $ (obj) .closest ( 'tr'). nextAll ( '. class') [0];
StuR

2
@StuR-.nextAll ()은 형제 요소 만보기 때문에 여기서는 작동하지 않습니다. 질문이 원하는 다음 <div>를 찾으려면 자손을 보는 것이 필요합니다.
Nick Craver

1
반환 된 HTMLObject에서 속성을 얻으려면 어떻게해야합니까? 처럼$(obj).closest('tr').nextAll('.class')[0].attr('data-attribute');
Dennis Braga 2014 년

다음 을 사용해야 할 수도 있습니다. .parent (). next ( "") 요소에 형제가없는 경우
shasi kanth

@NickCraver 당신은 굉장합니다
THE HOLY SPIRIT

23

같은 클래스를 가진 다음 요소를 찾으려면 :

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

13

문서 를 보면 다음과 같은 시나리오에서 next ()를 사용할 수 없습니다 .
Next () 일치하는 요소 집합에서 각 요소 바로 다음 형제를 가져 옵니다. 선택기가 제공되면 선택자와 일치하는 다음 형제를 검색합니다.

두 번째 DIV가 동일한 TD에 있으면 다음과 같이 코딩 할 수 있습니다.


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

그러나 그렇지 않기 때문에 next ()를 사용할 지점이 없습니다. 대신 다음과 같이 코딩 할 수 있습니다.

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


6
그러나 다음 요소는 어떻게 찾습니까? .find는 모든 요소를 ​​반환합니다.
Shashwat Kumar
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.