В jQuery, как я могу использовать селектор для доступа ко всем, кроме первого элемента? Таким образом, в следующем коде будет доступен только второй и третий элемент. Я знаю, что могу получить к ним доступ вручную, но может быть любое количество элементов, так что это невозможно. Спасибо.
<div class='test'></div>
<div class='test'></div>
<div class='test'></div>
jquery
jquery-selectors
usertest
источник
источник
Ответы:
или:
или:
или:
или: (согласно комментарию @Jordan Lev):
и так далее.
Видеть:
источник
$("li").not(":eq(0)")
кажется хорошим.$("div.test:first").siblings().hide()
. Мне показалось полезным начать с первого элемента, а затем спрятать всех его братьев и сестер, даже если они не найдены с общим селектором.$("div.test").slice(1).hide();
выглядит более щадящим в случае пустого выбора ...Из-за того, как селекторы jQuery оцениваются справа налево ,
li:not(:first)
эта оценка замедляет чтение .Не менее быстрое и легкое для чтения решение использует версию функции
.not(":first")
:например
JSPerf: http://jsperf.com/fastest-way-to-select-all-expect-the-first-one/6
Это всего на несколько процентных пунктов медленнее, чем это
slice(1)
, но очень легко читается как «Я хочу все, кроме первого».источник
Мой ответ сфокусирован на расширенном случае, полученном из приведенного сверху.
Предположим, у вас есть группа элементов, от которой вы хотите скрыть дочерние элементы, кроме первого. Например:
Мы хотим скрыть все
.child
элементы в каждой группе. Так что это не поможет, потому что скроет все.child
элементы, кромеvisible#1
:Решение (в этом расширенном случае) будет:
источник
источник