Получение скрытой ячейки с использованием jQuery - PullRequest
0 голосов
/ 11 апреля 2011

У меня есть следующая таблица:

<table id="mytable">
<tr> 
<th class="hidden">id</th> 
<th>name</th> 
</tr> 
<tr> 
<td class="hidden">87</td> 
<td>Isle of Palms</td> 
</tr> 
</table> 

, а затем этот код jQuery, чтобы скрыть столбец id:

<script> 
$(function() {
$('.hidden').hide();
});
</script> 

Мне нужно получить скрытое значение ячейки идентификатора, когда я нажимаю на любую строку, но не могу найти правильный селектор. Любая помощь будет оценена. Thanx.

Ответы [ 2 ]

0 голосов
/ 11 апреля 2011

Я собираюсь предположить, что вы мне .text() из <td class="hidden">87</td> или 87

Вы можете зарегистрировать обработчик кликов на <tr/>, а затем найти свой <td/>

$("tr").click(function(){
    var $idCell = $(this).find("td.hidden");
    if($idCell.length == 1)
    {
      var id = $idCell.text();
    }
});

Редактировать

Несколько лучшим вариантом может быть использование .filter(), поэтому вы регистрируете только те обработчики событий, у которых есть дочерний элемент <td class="hidden"/>

$("tr").filter(function(){
    return $(this).children("td.hidden").length == 1;
}).click(function(){
    alert($(this).find("td.hidden").text());
});
0 голосов
/ 11 апреля 2011

Попробуйте это:

$('tr').click(function () {

     var id = $(this).find('td.hidden').html();
});

UPDATE

$('tr').click(function () {

     var id = $(this).find('td.hidden:first').html();
});

Если у вас много столбцов и вы хотите выбрать первый, вы можете использовать : first . Помните, что это добавит событие click для всех ваших строк в вашей таблице. Я полагаю, вас интересуют только строки в вашем теле, которых нет в вашем примере. Поэтому я бы сделал это вместо:

<table id="mytable">
  <thead>  
    <tr> 
      <th class="hidden">id</th> 
      <th>name</th> 
    </tr>
  </thead>
  <tbody> 
    <tr> 
      <td class="hidden">87</td> 
      <td>Isle of Palms</td> 
    </tr> 
  </tbody>
</table> 

и затем установить события щелчка для строк тела

$('tbody tr').click(function () {

     var id = $(this).find('td.hidden:first').html();
});

Надеюсь, это поможет!

...