Не удалось получить значение братьев и сестер из строки таблицы - PullRequest
0 голосов
/ 24 мая 2010

Я пытаюсь получить значения из соседних столбцов, когда для этой строки нажата радиокнопка. Я могу сделать это, но проблема, с которой я сталкиваюсь, когда в столбце переключателя больше элементов, то я получаю нулевые значения (т.е. 2-я строка не работает). Пожалуйста, помогите ... Код все следует

<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>

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);
});

1 Ответ

1 голос
/ 24 мая 2010

Проблема во втором ряду в том, что input не является потомком td, а span, поэтому parent() даст вам span, а не td.
Вместо этого используйте .closest(), что дает вам «ближайшего» предка, соответствующего селектору:

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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...