Select all child elements except the first

Select all child elements except the first

Say I have the following:

  • First item
  • Second item
  • Third item

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

  • First item
  • Second item
  • Third item

Solutions/Answers:

Solution 1:

You should be able to use the “not” and “first child” selectors.

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

http://docs.jquery.com/Selectors/not

http://docs.jquery.com/Selectors/firstChild

Solution 2:

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

Solution 3:

http://docs.jquery.com/Traversing/slice

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

Solution 4:

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


$('ul li+li')

Solution 5:

i’d use

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

Solution 6:

This should work

Related:  NodeJs stress testing tools/methods [closed]

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