Select all child elements except the first

Viewed 71866

Say I have the following:

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

How would I select all the child elements after the first one using jQuery? So I can achieve something like:

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

Based on my totally unscientific analysis of the four methods here, it looks like there's not a lot of speed difference among them. I ran each on a page containing a series of unordered lists of varying length and timed them using the Firebug profiler.

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

Average Time: 5.322ms

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

Average Time: 5.590ms

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

Average Time: 6.084ms

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

Average Time: 7.831ms

A more elegant query (select all li elements that are preceded by a li element):

$('ul li+li')

This should work

$('ul :not(:first-child)').addClass('something');

i'd use

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

This is what I have working so far

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

Use jQuery .not() method

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

OR

var firstElement = $('li').first();
$('li').not(firstElement).addClass('something');
Related