2010-05-24 3 views
0

J'essaie d'obtenir des valeurs de colonnes adjacentes, lorsqu'un bouton radio est cliqué pour cette ligne. Je suis capable de le faire, mais le problème auquel je suis confronté, quand il y a plus d'éléments dans la colonne du bouton radio, alors je reçois des valeurs nulles (c'est-à-dire que la 2e rangée ne fonctionne pas). S'il vous plaît aider ... code est tout suitImpossible d'obtenir la valeur des frères et sœurs de la ligne

<table id="dist_list" class="data"> 
<tbody> 
<tr> 
<td> 
<input type="radio" value="636406" name="distRG" id="radio_7" /></td> 
    <td class="selected">Company 1</td> 
    <td class="siteId">1234</td> 
    <td class="siteName">First Company Name</td> 
</tr> 

<!-- Not able to get values from this row, since there are more elements in it --> 
<tr> 
<td> 
<span class="jqTransformRadioWrapper"><a rel="distRG" class="jqTransformRadio" href="#"></a> 
<input type="radio" value="636406" name="distRG" id="radio_2" /> 
</span></td> 
    <td class="selected">Company 2</td> 
    <td class="siteId">2345</td> 
    <td class="siteName">Second Company Name</td> 
</tr> 

<tr> 
<td><input type="radio" value="636406" name="distRG" id="radio_3" /></td> 
    <td class="selected">Company 3</td> 
    <td class="siteId">3456</td> 
    <td class="siteName">Third Company Name</td> 
</tr> 

<tr> 
<td><input type="radio" value="213584" name="distRG" id="radio_4" /></td> 
    <td class="selected">Company 4</td> 
    <td class="siteId">4567</td> 
    <td class="siteName">Fourth Company Name</td> 
</tr></tbody></table> 

scripts jQuery

$("input[name=distRG]").click(function() { 
    var owner = $(this).parent().siblings('td.selected').text(); 
    var siteId = $(this).parent().siblings('td.siteId').text(); 
    var siteName = $(this).parent().siblings('td.siteName').text(); 
    alert(owner); 
    alert(siteId); 
    alert(siteName); 
}); 

Répondre

1

Le problème dans la deuxième rangée est que input est pas un enfant de td mais span, donc parent() vous donnera span et non td.
Utilisez .closest() à la place, ce qui vous donne l'ancêtre « le plus proche », qui correspond au sélecteur:

var owner = $(this).closest('td').siblings('td.selected').text(); 
var siteId = $(this).closest('td').siblings('td.siteId').text(); 
var siteName = $(this).closest('td').siblings('td.siteName').text(); 
+0

merci beaucoup .. fonctionne comme un charme .. – Sullan

Questions connexes