2010-09-16 2 views
2

J'ai une table (balisage standard) avec une sélection radio dans chaque ligne. Une fois la radio sélectionnée, j'aimerais le souligner. Cela semble assez simple mais je n'arrive pas à le déclencher.jQuery pour mettre en surbrillance la ligne du tableau sur la radio, sélectionnez

Voici le balisage:

La Table Row:

<tr>
<td>some data</td>
<td>some data</td>
<td>some data</td>
<td>
<label class="label_radio"><input type="radio" name="ame" value="val" /></label>
</td>
</tr>

Ceci est la partie pertinente de la JS: (mods l'étiquette Sexify le bouton radio, que les travaux de bits, la bit ne fonctionne pas):

$('.label_radio input:checked').each(function(){ 
$(this).parent('label').addClass('r_on'); 
$(this).parent('tr').addClass('.hilite'); //this line doesn't work 
}); 

Des idées? Si je n'ai pas donné assez d'informations, dites-le et je vous trouverai ce dont vous avez besoin.

très apprécié à l'avance :)

Répondre

5

parent de la radio ne sont pas en fait la ligne de table, il est l'étiquette. utilisez la méthode .closest à la place pour rechercher la chaîne parente jusqu'à ce que vous arriviez au TR.

$(this).closest('tr').addClass('hilite'); 
+0

Plus propre que la mienne et plus rapide. En dehors de upvotes tho, désolé :) –

+0

NOTE: Je viens d'éditer ma réponse parce que l'auteur original faisait .addClass ('.hilite') au lieu de .addClass ('hilite'). Je doute qu'il ait voulu le faire. – BBonifield

+0

Je suis en ayant clairement un de ces jours! Oui, vous avez raison, les deux comptent. Mon erreur dans le '.ilite', j'avais déjà corrigé cela. Merci beaucoup - Je ne peux pas croire que je n'ai pas vu le problème des «parents» avant de demander de l'aide. – Tim

0

Pas la manière la plus propre probablement, mais que faire si vous utilisez $(this).parent().parent().addClass('.hilite');?

Questions connexes