jQuery выбрать все, кроме первого

В jQuery как использовать селектор для доступа ко всем, кроме первого элемента? Таким образом, в следующем коде будет доступен только второй и третий элементы. Я знаю, что могу получить доступ к ним вручную, но может быть любое количество элементов, так что это невозможно. Благодарю.

 $("div.test:not(:first)").hide(); 

или:

 $("div.test:not(:eq(0))").hide(); 

или:

 $("div.test").not(":eq(0)").hide(); 

или:

 $("div.test:gt(0)").hide(); 

или: (согласно комментарию @Jordan Lev’s):

 $("div.test").slice(1).hide(); 

и так далее.

Видеть:

Из-за того, как селекторы jQuery оцениваются справа налево , вполне читаемый li:not(:first) замедляется этой оценкой.

Не менее быстрое и легко читаемое решение использует версию функции .not(":first") :

например

 $("li").not(":first").hide(); 

JSPerf: http://jsperf.com/fastest-way-to-select-all-expect-the-first-one/6

Это всего лишь несколько процентных пунктов медленнее, чем slice(1) , но очень читаем как «Я хочу всех, кроме первого».

Мой ответ сосредоточен на расширенном случае, полученном от того, который был показан сверху. Расширенный пример:

Предположим, у вас есть группа элементов, из которых вы хотите скрыть дочерние элементы, кроме первого. В качестве примера:

  
visible#1
xx
yy
visible#2
aa
bb
  1. Мы хотим скрыть все элементы «.child» в каждой группе. Так что это не поможет, потому что скроет все элементы «.child», кроме «visible # 1»:

$('.child:not(:first)').hide();

  1. решение (в этом расширенном случае) будет:

$('.some-group').each(function(i,group){ $(group).find('.child:not(:first)').hide(); });

 $(document).ready(function(){ $(".btn1").click(function(){ $("div.test:not(:first)").hide(); }); $(".btn2").click(function(){ $("div.test").show(); $("div.test:not(:first):not(:last)").hide(); }); $(".btn3").click(function(){ $("div.test").hide(); $("div.test:not(:first):not(:last)").show(); }); }); 
     
First
Second
Third
Last
  • Селектор jQuery: Id заканчивается?
  • Как выбрать конкретный элемент формы в jQuery?
  • Получить список отмеченных флажков в div с помощью jQuery
  • Есть ли jQuery-подобный CSS / HTML-селектор, который можно использовать в C #?
  • Выделение селектора jQuery
  • Как я могу выбрать элемент с несколькими classами в jQuery?
  • полный календарный выбор ячейки на мобильном устройстве?
  • Что такое fastest children () или find () в jQuery?
  • jQuery .bind () vs. .on ()
  • jQuery: выбрать class элемента и идентификатор одновременно?
  • поиск jQuery и контекст
  • Давайте будем гением компьютера.