select除第一个以外的所有子元素

说我有以下几点:

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

如何在第一个使用jQuery之后select所有子元素? 所以我可以做到这样的事情:

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

你应该可以使用“不”和“第一个孩子”select器。

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

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

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

根据我对这四种方法的完全不科学的分析,看起来似乎没有太多的速度差异。 我在包含一系列不同长度的无序列表的页面上运行,并使用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

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

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

更优雅的查询(selectli元素前面的所有li元素):

$('ul li+li')

这应该工作

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

我会用

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

这是我迄今为止的工作

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