2011-08-22 15 views
6

que tienen esta estructura HTMLJquery luego no encuentra el siguiente div?

<img width="25" height="25" src=/data/apple_logo.jpg alt=Chocolate />  
    <input class="cake_checkboxes" style="vertical-align: bottom;" type="checkbox" name="option[232][]" value="23" id="option-value-23" /> 
    <label for="option-value-23"> Chocolate</label> 
    <br /> 
<div style='display:none;' class="quantity"> 
...... 

si lo hago

$('.cake_checkboxes:first').next('div') 

o

$('.cake_checkboxes:first').next('.quantity') 

puedo obtener un valor vacío regresó, pero si hago esto

$('.cake_checkboxes:first').next().next().next() 

tengo la div ... necesito alguna idea de lo que está mal o si hay una manera de atravesar hacia abajo como el método jQuery closest atraviesa hasta

Respuesta

22

next() sólo devuelve el siguiente elemento en el DOM si coincide con el selector , de lo contrario, regresa y vacía el objeto. Entonces, lo único que podría buscar usando next() es <label>. Use este lugar:

$('.cake_checkboxes:first').nextAll('.quantity').first() 

jQuery Docs: nextAll()

+0

pensé 'nextUntil()' no incluye el elemento que se corresponde? – dotjoe

+0

@dotjoe, estás en lo cierto. Lo arreglé – Paulpro

+0

gracias por eso .. – Trace

3

hermanos también trabajan aquí

$('.cake_checkboxes:first').siblings('.quantity') 
+1

hermanos es un poco más lento, ya que también comprueba cualquier elemento antes del punto de partida. nextTodo solo verifica los elementos después. –

Cuestiones relacionadas