2011-01-07 42 views
6

Tengo un pequeño problema con jQuery muy básico, me gustaría poder hacer clic en una celda de la tabla, y luego hacer que seleccione automáticamente el botón de radio dentro.Haga clic en td, seleccione el botón de opción en jQuery

HTML:

<table> 
    <tr> 
    <td> 
    1<br> 
    <input type="radio" name="choice" value="1"> 
    </td> 
    <td> 
    2<br> 
    <input type="radio" name="choice" value="2"> 
    </td> 
    <td> 
    3<br> 
    <input type="radio" name="choice" value="3"> 
    </td> 
    </tr> 
    </table> 

jQuery:

$("td").click(function() { 

    $(this).closest('input:radio').attr('checked',true); 

}); 

Cualquier ayuda muy sería apreciado, gracias!

+0

Dado que las respuestas son correctas, voy a agregar aquí que '.closest()' es para recorrer ** hacia arriba ** el árbol DOM, p. obteniendo el '' o el '

', en lugar de abajo. –

Respuesta

12

Usar este selector:

$('input:radio', this).attr('checked', true); 

O usando find método:

$(this).find('input:radio').attr('checked', true); 

aquí es cómo el código debe ser similar:

$("td").click(function() { 
    $(this).find('input:radio').attr('checked', true); 
}); 
+2

No es necesario ajustar 'this' en el constructor jQuery cuando se usa como contexto,' $ ('input: radio', this) 'es suficiente. –

+0

¡Muchas gracias! Una cosa rápida, sin embargo, estoy cambiando la clase cuando se selecciona el botón de radio, pero esto no funciona cuando haces clic en la celda, aunque el botón de opción esté seleccionado. \t $ ("entrada td [type = de radio]") se unen ('cambio click', function() { \t \t $ ('td') removeClass ('seleccionado');.. \t \t $ (este) .parent ('td'). addClass ('selected'); \t}); – Nick

+1

@ Box9: actualizado para evitar cualquier confusión adicional :) – Sarfraz

2

Trate

$(this).find('input:radio').attr('checked','checked'); 
+0

Muchas gracias :) – Nick

+0

De nada Nick –

2

Intenta buscar en lugar de lo más cercano.

$(this).find('input:radio').attr('checked',true); 
+0

¡Gerard me has vencido por 4 minutos! arg :) –

Cuestiones relacionadas