2010-01-19 2 views
3

Je le dilemme suivant: Mon HTML est en tant que telle (cela existe dans une application PL/SQL.):JQuery - saisir la valeur td à côté du bouton radio

<table id="search_result_table"> 
<tr> 

<input type=radio name="pv_select" value="'||lv_spriden_id||'"/> 
<font face="Calibri" size=3><td id="spriden_id"  name="spriden_id">'||lv_spriden_id||'</td></font>' 
<font face="Calibri" size=3><td id="last_name" class="c_last_name"  name="last_name">'||lv_spriden_last_name||'</td></font> 
<font face="Calibri" size=3><td id="first_name" class = "c_first_name"  name="first_name">'||lv_spriden_first_name||'</td></font> 
</tr> 
</table> 

Je suis en mesure d'obtenir à la valeur de bouton radio sélectionné via:

$("input[name=pv_select]:checked").val() 

Cependant, je voudrais être en mesure d'obtenir la valeur de la cellule de la colonne « last_name » (qui existe dans une table à côté du bouton radio). Comment puis-je récupérer cette valeur (pour la ligne sélectionnée via le bouton radio) via jQuery?

J'ai essayé plusieurs choses, mais aucun travaillent:

$("input[name=pv_select]:checked").parent().siblings("td:eq(1)").text());  

Merci à l'avance.

+0

Peut-être que vous pouvez publier la source générée, parce que votre message n'a aucun sens. – jerone

+0

Votre extrait html ne ressemble pas au html, qu'est-ce que c'est? – JonoW

+0

Le code HTML existe dans une application PL/SQL – Anonymous

Répondre

2

Le code HTML est invalide; Vous ne savez pas si cela déblaie votre arborescence DOM, et donc confondez jQuery alors qu'il essaie de traverser l'arbre DOM cassé.

est ici HTML valide:

<table id="search_result_table"> 
    <tr> 
     <td> 
      <input type=radio name="pv_select" value="'||lv_spriden_id||'"/> 
     </td> 
     <td id="spriden_id" name="spriden_id"><font face="Calibri" size=3>'||lv_spriden_id||'</font></td> 
     <td id="last_name" class="c_last_name" name="last_name"><font face="Calibri" size=3>'||lv_spriden_last_name||'</font></td> 
     <td id="first_name" class = "c_first_name" name="first_name"><font face="Calibri" size=3>'||lv_spriden_first_name||'</font></td> 
    </tr> 
</table> 

Et jQuery pour obtenir la valeur de la cellule de table « dernier nom » dans la même ligne que le bouton radio vérifié:

$("input[name=pv_select]:checked").parent().siblings("td.c_last_name").text()); 

(je dis la Le code HTML est valide: les valeurs de l'attribut id sont destinées à être uniques dans une page HTML, donc si vous avez plusieurs lignes utilisant les mêmes attributs d'ID pour les cellules du tableau, cela n'est pas non plus valide.)

+0

Merci! La résolution du HTML comme suggéré ci-dessus a résolu le problème. Cela fonctionne maintenant dans IE et Firefox. Je n'ai pas aimé référencer l'élément d'intérêt via eq(). Le référencer via le nom de la classe (c_last_name) fonctionne maintenant correctement. Merci de votre aide! – Anonymous

+0

Vous êtes le bienvenu. –

0

sélecteur Vous fonctionne sur une table générique avec une entrée dans td et dernier texte de nom dans un autre td

peut-être votre problème est que le nom est déclaré après la soumettre, vous devriez essayer de modifier le sélecteur avec

$("input[name=pv_select]:checked").parent().siblings("td:eq(0)").text(); 

où je viens de changer l'indice de frères et soeurs (si je suis votre dump de bonne table, vos .siblings ("td: eq (1)") est Prénom, eq (0) devrait être nom)

Juste une suggestion ..

EDIT

Lorsque vous avez publié votre extrait html, je me suis rendu, que vous n'avez pas besoin de vérifier des éléments de frères et soeurs de la mère de la radio. Comme son parent est tr et les frères et sœurs de tr dans le tableau sont juste un autre tableau lignes.

Ce que vous pouvez envisager est d'utiliser la fonction de déplacement .next() qui se déplace à l'élément suivant dans les DOM

Il est triste, que je ne peux pas tester ce assez FF (ou tout simplement parce que poste Firebug/jquery.), mais cela est le code, vous exactement demandé (obtenir l'élément suivant de l'entrée radio):

$('input[name="pv_select"]:checked').next(); 

le seul problème est que l'élément suivant est élément police, que je ne peux pas sembler rendre correctement FF (et ne réside pas dans la ligne du tableau - il affiche directement ment intérieur corps dans l'inspecteur Firebug), donc .children() ne peuvent pas trouver ou whatewer td que vous essayez de trouver

+0

Non - cela ne fonctionne pas non plus. Peu importe, je ne suis pas en mesure d'afficher le prénom ni le nom de famille. Je suppose pour mieux formuler ma question (sans entrer dans les détails inutiles): Comment peut-on via JQUERY saisir la cellule de la colonne à côté du bouton radio sélectionné? À savoir, disons que nous avons:
[Radio button1] Column1_Value Column2_Value
[Radio Bouton2] Column1_Value Column2_Value
[button3 radio vérifié] Column1_Value Column2_Value
Comment puis-je saisir la valeur Column2_Value du * vérifié * (sélectionné) bouton radio? (Notez que tout ce qui précède est inclus dans un tableau). – Anonymous

+0

Signifie de: de la ligne sélectionnée (via le bouton radio). Encore une fois, je suis capable de saisir la valeur du bouton radio. Pourtant, ne peut pas saisir la valeur de l'une des cellules à côté du bouton radio sélectionné. – Anonymous

0

Je viens de réaliser que cela fonctionne dans Firefox, mais pas dans IE. Par conséquent, je vais analyser ce qui peut être à l'origine de l'échec d'un navigateur et non de l'autre.

Questions connexes