2011-05-27 29 views
18
niños

Sólo un ejemplo rápido:.

<p> 
    <span class="example"></span> 
    <input type="text" name="e_name" id="e_id /> 
</p> 
<script type="text/javascript"> 
    $('input').click(function(){ 
     $(this).parent().children('span').text('Suprise!'); 
    } 
</script> 

¿Qué puedo usar en lugar de los padres (niños)()?

Creo que es una pieza poco elegante de código. Es cualquier función, es decir: $ (this) .fun ('span'). Text ('just better'); ??

+0

Gracias por hacer una pregunta muy legible, así que no tuve que hacer clic en 3 respuestas diferentes, sin saber qué había dentro. – Jason

Respuesta

44
$(this).siblings('span').text('Suprise!'); 
+0

Perfecto;) ¡Muchas gracias! –

+1

Definitivamente me gusta '.siblings', ni siquiera había pensado en esa función, gran respuesta. –

+2

'$ (this) .siblings()' se ignorará a sí mismo, por lo que si desea apuntar a niños incluidos él mismo, 'parent(). Children()' todavía está limpio. – WaldenW

0

intente esto:

$(this).prev('span').text('Surprise!'); 
7

$(this).siblings('span').text('Surprise!');

sería el equivalente sin recorrer el DOM y luego hacia abajo (me refiero, todavía lo hace, pero al menos eres no hacerlo manualmente).

4

Un poco más elegante es .prev()

$(this).prev('span').text('Surprise!'); 

se puede leer más sobre esto aquí: Prev

edición: leer el marcado hacia atrás, anterior es mejor, no al lado.

1
$("span.example",$(this).parent()).text('Suprise!'); 
Cuestiones relacionadas