첫 번째를 제외한 모든 하위 요소를 선택합니다.


81

다음이 있다고 가정합니다.

<ul>
 <li>First item</li>
 <li>Second item</li>
 <li>Third item</li>
</ul>

jQuery를 사용하여 첫 번째 요소 이후에 모든 하위 요소를 어떻게 선택합니까? 따라서 다음과 같은 결과를 얻을 수 있습니다.

<ul>
 <li>First item</li>
 <li class="something">Second item</li>
 <li class="something">Third item</li>
</ul>

답변:



36

여기에서 네 가지 방법에 대한 완전히 비과학적인 분석을 바탕으로 볼 때 속도 차이가 많지 않은 것 같습니다. 다양한 길이의 정렬되지 않은 목록이 포함 된 페이지에서 각각을 실행하고 Firebug 프로파일 러를 사용하여 시간을 측정했습니다.

$("li").slice(1).addClass("something");

평균 시간 : 5.322ms

$("li:gt(0)").addClass("something");

평균 시간 : 5.590ms

$("li:not(:first-child)").addClass("something");

평균 시간 : 6.084ms

$("ul li+li").addClass("something");

평균 시간 : 7.831ms


3
나는 첫 번째를 제외하고 모든 자녀를 가져야했기 때문에이 질문을 발견했습니다. div에있는 모든 h3에서이 작업을 수행했습니다. 내 페이지에서 위와 같은 세 가지 쿼리를 실행 한 결과 : not (: first-child)가 2-3 배 빠르다는 것으로 나타났습니다. 페이지 구조가 프로필 속도에도 영향을 미칠 수 있다고 생각합니다. 이 답변이 Firebug 프로파일 러를 사용하는 방법을 알려주었지만 감사합니다.
RedWolves 2009-06-16



3

나는 사용할 것이다

$("li:gt(0)").addClass("something");


1

이것이 내가 지금까지 일한 것입니다.

$('.certificateList input:checkbox:gt(0)')

0

jQuery .not () 메서드 사용

$('li').not(':first').addClass('something');

또는

var firstElement = $('li').first();
$('li').not(firstElement).addClass('something');
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.