Ответ 1
Вы должны иметь возможность использовать селектор "не" и "первый ребенок".
$("li:not(:first-child)").addClass("something");
Скажем, у меня есть следующее:
<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>
Вы должны иметь возможность использовать селектор "не" и "первый ребенок".
$("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");
Более элегантный запрос (выберите все элементы li, которым предшествует элемент li):
$('ul li+li')
Это должно работать
$('ul :not(:first-child)').addClass('something');
Я бы использовал
$("li:gt(0)").addClass("something");
Это то, что я работаю до сих пор
$('.certificateList input:checkbox:gt(0)')