Скажем, у меня есть следующее:
<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>



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы должны уметь использовать селекторы «не» и «первый ребенок».
$("li:not(:first-child)").addClass("something");
http://docs.jquery.com/Selectors/not
http://docs.jquery.com/Selectors/firstChild
Я пробовал это: $ ('. CertificateList input: checkbox: not (: first-child)'), но это не сработало ....
Будет ли это медленнее, чем метод Slice, указанный ниже?
Это то, над чем я работаю до сих пор
$('.certificateList input:checkbox:gt(0)')
Это должно работать
$('ul :not(:first-child)').addClass('something');
Более элегантный запрос (выберите все элементы li, которым предшествует элемент li):
$('ul li+li')
$ ("li + li"), скорее всего, будет работать быстрее, чем $ ("li: not (: first-child)")
я бы использовал
$("li:gt(0)").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 мс
Я столкнулся с этим вопросом, потому что мне нужно было получить всех детей, кроме первого. Я делал это на всех h3, которые были в div. Я выполнил три запроса, как у вас, на моей странице, и получил: not (: first-child) как самый быстрый в 2-3 раза. Я думаю, что то, как структурирована ваша страница, также может повлиять на скорость профиля. В любом случае, этот ответ научил меня использовать профилировщик Firebug, и я благодарю вас за это.
Используйте метод jQuery .not ()
$('li').not(':first').addClass('something');
ИЛИ ЖЕ
var firstElement = $('li').first();
$('li').not(firstElement).addClass('something');
Это хороший ответ, но я чувствую, что в качестве ответа я выбрал более явное использование. Любой новичок в проекте будет быстрее понимать, что делается в селекторе.