2008-10-07 13 views
72

Decir que tengo el siguiente:Seleccionar todos los elementos secundarios, excepto el primero

<ul> 
<li>First item</li> 
<li>Second item</li> 
<li>Third item</li> 
</ul> 

¿Cómo podría seleccionar todos los elementos secundarios después de la primera usando jQuery? Por lo que puedo lograr algo como:

<ul> 
<li>First item</li> 
<li class="something">Second item</li> 
<li class="something">Third item</li> 
</ul> 

Respuesta

13

http://docs.jquery.com/Traversing/slice

$("li").slice(1).addClass("something"); 
+0

Esta es una buena respuesta, pero siento lo que seleccioné ya que la respuesta es el uso más explícito. Cualquier persona nueva en el proyecto tendrá una comprensión más rápida de lo que se está haciendo en el selector. –

1

Esto es lo que he trabajando hasta ahora

$('.certificateList input:checkbox:gt(0)') 
2

Esto debería funcionar

$('ul :not(:first-child)').addClass('something'); 
9

Una más estrecha sala hormiga consulta (seleccione todos los elementos li que están precedidos por un elemento li):

$('ul li+li')

+1

$ ("li + li") probablemente funcione más rápido que $ ("li: no (: primer hijo)") –

2

que haría uso de

$("li:gt(0)").addClass("something"); 
30

Basado en mi análisis no científica de los cuatro métodos aquí, se ve como que no hay mucha diferencia de velocidad entre ellos. Ejecuté cada uno en una página que contenía una serie de listas desordenadas de diferentes longitudes y las sincronicé con el generador de perfiles de Firebug.

$("li").slice(1).addClass("something"); 

Promedio de tiempo: 5.322ms

$("li:gt(0)").addClass("something"); 

Promedio de tiempo: 5.590ms

$("li:not(:first-child)").addClass("something"); 

Tiempo Promedio: 6.084ms

$("ul li+li").addClass("something"); 

Promedio de tiempo: 7.831ms

+2

¡Gracias por hacer esto! –

+3

Me encontré con esta pregunta porque necesitaba conseguir todos los niños menos el primero. Estaba haciendo esto en todos los h3 que estaban en un div. Ejecuté tres de las consultas como las que tenía arriba en mi página y obtuve: no (: primer hijo) como el más rápido en 2-3 veces. Creo que la forma en que está estructurada tu página también puede influir en las velocidades de perfil.De cualquier manera, esta respuesta me enseñó a usar el generador de perfiles de Firebug y te agradezco por eso. – RedWolves

Cuestiones relacionadas