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