2009-07-25 15 views
5

Tengo una lista en un ul que está en un repetidor ASP. La lista está configurada para desbordarse con una barra de desplazamiento y mostrar solo 16 li s a la vez. ¿Existe una función de recuento jQuery que pueda usar que me permita seleccionar cada "16º" li y agregarle una clase específica?¿Puedo contar elementos usando jQuery?

La selección de la última no funcionará porque la 16ª div no es la última div ya que está en un repetidor.

Respuesta

11

Sí, se llama :nth-child.

muestra:

$("ul li:nth-child(16n)").addClass("sixteenth"); 
+0

derecho, lo entiendo. Pero quiero obtener el "16º", "32", etc. ¿Esta función lo haría? –

+0

Lo he modificado, sí lo hará. Solo cambia (16) a (16n). –

+0

Perfecto, eso es exactamente lo que estaba buscando. ¡Gracias! –

0

Si desea aplicar clase para cada elemento después del 16 º continuación, puede utilizar :gt(index) selector.

$("ul li:gt(16)").addClass("CLASS_NAME"); 

recordar: gt,: lt etc selectores utilizan índice basado en cero.

por cada 16 º ofcouse puede utilizar :nth-child(index)

$("ul li:nth-child(16)").addClass("CLASS_NAME"); 

recordar : nth-child selectores basados ​​utilizan 1 para el primer elemento.

+0

bien este método ": nth-child (index)" solo seleccionará el 16 ° li. Lo necesito para tomar el 32º, 48º, ... –

+0

Sí y para eso http://stackoverflow.com/questions/1181113/can-i-count-elements-using-jquery/1181187#1181187 funcionará !! – TheVillageIdiot

+0

También lo hará http://stackoverflow.com/questions/1181113/can-i-count-elements-using-jquery/1181114#1181114 - pero con mucho menos código :) –

1

Usted podría tratar de una función .each:

$("ul li").each(function(index, domEle) { 
    if (index%16==0) { 
      $(domEle).addClass("CLASS_NAME"); 
    } 
}); 
+0

¿qué representa domEle? –

+0

¿No es esta opción un poco rígida? ¡jQuery ya proporciona la capacidad de hacer lo que quiere * sin * iterar sobre toda la lista! Vea mi respuesta para ver un ejemplo del selector nth-child. –

+0

funciona, sin embargo. tu solución es, cómo dices, eleganter, tho :) – Jason

Cuestiones relacionadas