2010-08-11 14 views
39

¿Cómo selecciono los siguientes elementos "n" a partir del elemento actual? Lo que quiero decir es ...¿Cómo selecciono los siguientes elementos "n" a partir del elemento actual en jQuery?

$(this).attr(...); 

Quiero hacer esto "n" veces. Para el ejemplo de n = 4:

$(this).attr(...); 
$(this).next().attr(...); 
$(this).next().next().attr(...); 
$(this).next().next().next().attr(...); 

o tal vez hacerlo en un bucle:

for (i = 0; i < n; i++) { 
    $(this).next().attr(...); 
} 

¿Cómo puedo hacer esto? ¿Hay alguna forma de que pueda hacer esto seleccionando los siguientes elementos "n" o en un bucle?

+5

Por qué diablos estaba presente downvoted? Esto está bien redactado, y es un problema habitual. –

+1

De acuerdo. Dos votos a favor y no hay explicación. Las personas que votan negativamente deben dejar una razón por la cual. Esto me parece una pregunta perfectamente razonable. – user113716

Respuesta

51

Esto debería funcionar:

$(this).nextAll().slice(0,4).attr(…) 

Actualización:

Esto funcionará, también:

$(this).nextAll("*:lt(4)").attr(…) 
+0

¿el '0' en slice() sería $ (esto)? – Hristo

+0

no, porque antes de que llame a '.nextAll()' esto no contiene el elemento en sí – jigfox

+8

@Hristo - Si necesita el original también, puede llamar a '$ (this) .nextAll(). Y Self () ... '. – user113716

0

$(this).slice(start_index, end_index) seleccionará una parte de su selección. Puede realizar un seguimiento de su índice actual en el bucle y luego aplicar la función .slice(cur_index, cur_index+n) en el conjunto original cuando llegue a su condición.

10

the nextAll method selecciona los siguientes hermanos de un elemento, opcionalmente filtrados por un selector. A continuación, puede seguir con un slice para restringir a una n más pequeña.

+0

Este es el camino a seguir. –

Cuestiones relacionadas