假设我有以下内容:
<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>
假设我有以下内容:
<ul>
<li>First item</li>
<li>Second item</li>
<li>Third item</li>
</ul>
<ul>
<li>First item</li>
<li class="something">Second item</li>
<li class="something">Third item</li>
</ul>
您应该能够使用“not”和“first-child”选择器。
$("li:not(:first-child)").addClass("something");
基于我完全不科学的分析,看起来这四种方法中速度差别不大。我在一个包含一系列长度不同的无序列表的页面上运行了每个方法,并使用Firebug分析器计时。
$("li").slice(1).addClass("something");
平均时间:5.322毫秒
$("li:gt(0)").addClass("something");
平均时间:5.590毫秒
$("li:not(:first-child)").addClass("something");
平均时间:6.084毫秒
$("ul li+li").addClass("something");
平均时间:7.831毫秒
http://docs.jquery.com/Traversing/slice
$("li").slice(1).addClass("something");
$('ul li+li')
我会使用
$("li:gt(0)").addClass("something");
这应该可以正常工作。
$('ul :not(:first-child)').addClass('something');
$('li').not(':first').addClass('something');
或者
var firstElement = $('li').first();
$('li').not(firstElement).addClass('something');
这是我目前所做的工作
$('.certificateList input:checkbox:gt(0)')