2011-01-14 10 views
6

Tengo html y quiero seleccionar elementos del intervalo 5 desde la posición 10 °. ¿Como hacer esto?Cómo seleccionar elementos entre el intervalo

Mi html:

<div class="chaire"> 
    <img alt="" src="2.gif"> 

</div> 
<div class="chaire"> 
    <img alt="" src="2.gif"> 
</div> 
<div class="chaire"> 
    <img alt="" src="2.gif"> 
</div> 
<div class="chaire"> 
    <img alt="" src="2.gif"> 
</div> 
... 
<div class="chaire"> 
    <img alt="" src="2.gif"> 
</div> 

Trato con jQuery:

$(".chaire:gt(10):lt(15)"); 

pero me seleccionar etiquetas div e img. Pero necesito etiquetas div.

Respuesta

4

Su código hace el trabajo muy bien, y selecciona sólo <div> elementos. Eche un vistazo a this example fiddle, que encuentra 5 <div> elementos después del 10º ( :gt(9):lt(15)).


El selector tiene sólo seleccionará los elementos con que el nombre de clase, en el caso de tu ejemplo HTML, es sólo los elementos <div>. No se seleccionarán los elementos <img>. Como rcravens ya había señalado, los dos selectores modifican el resultado por separado, por lo que necesita usar :lt() primero - :lt(15):gt(9).

Ejemplo actualizado en: http://jsfiddle.net/teQkf/3/. La siguiente parte del código de ejemplo encuentra los elementos <img> dentro del resultado y cambia su src a otra cosa.

Es mejor utilizar slice, que es sólo una operación en el resultado y por lo tanto menos confuso, por no mencionar más rápido:

$(".chaire").slice(10,15); 

(example)

+0

No estoy de acuerdo. El: gt (9): lt (15) parece que está funcionando porque solo hay 5 elementos más en la serie. Actualicé tu ejemplo para mostrar: http://jsfiddle.net/rcravens/teQkf/2/ – rcravens

+0

@rcravens: sí, me había dado cuenta de eso también. Intercambiar los selectores soluciona el problema, así que actualicé mi respuesta. Definitivamente recomendaría usar 'slice' para evitar este tipo de confusión. –

2

probar esto:

$(".chaire:gt(10):lt(5)"); 

Aquí es una jFiddle a jugar.

http://jsfiddle.net/rcravens/m3j6K/

Parece que encadenar el 'gt' y 'lt' selectores 'lt' medio se aplica a lo que queda después de la 'gt'.

Bob

+0

Si desea mantener el '10 'y' 15 'índices, aplique el' lt 'primero y el' gt 'segundo. Actualicé jFiddle para incluir un ejemplo de eso: http://jsfiddle.net/rcravens/m3j6K/1/ – rcravens

+0

Vale la pena mencionar que ambos selectores toman números enteros basados ​​en cero como argumentos, por lo que 0 es del primer elemento, 1 es desde el segundo, etc. Por lo tanto, ': gt (10): lt (5)' en realidad selecciona los elementos 12-15, que son solo 4 elementos. Vea una actualización de su propio ejemplo: http://jsfiddle.net/m3j6K/3/ –

Cuestiones relacionadas