2011-09-01 3 views
2

Как получить значение ячейки в таблице, когда пользователь нажимает на следующую ячейку?Получить значение детей в jquery

<table id="registrarsTable"> 

<c:forEach items="${requestScope.AllUsers}" var="user" varStatus="loop"> 
    <tr class="userRow"> 
     <td class="numberWidth">${loop.index + 1}</td> 
     <td class="nameWidth user" id="${user.userno}">${user.fullName}</td> 
     <td> 

     <button name="DeactivateBtn" id="deactivate" class="deactivate btn">deactivate</button> 

     </td> 
    </tr> 
</c:forEach> 

в JQuery Я хочу, чтобы получить значение атрибута «ID» из второго td когда пользователь нажимает на кнопку Деактивировать.

я делаю как этот

var userNo = $('td.user', $(this).parents(".userRow")).attr('id'); 

и как это

 var userNo = $($(this).parent(".userRow") > "td").attr("id"); 

и никто не работает!

ответ

1
$('#deactivate').click(function() { 
    var userNo = $(this).parent().prevAll('td.user').attr('id'); 
}); 

С помощью кнопки (которая this), пройти до родителя (The <td>, содержащий кнопку Деактивировать). Затем к предыдущему брату <td> с классом user и получите атрибут id.

В качестве альтернативы, если вы хотите, чтобы не полагаться на самом деле кнопка Деактивировать находится в <td> после того, как имя пользователя <td>, вы можете сделать это:

$('#deactivate').click(function() { 
    var userNo = $(this).closest('tr').find('td.user').attr('id'); 
}); 

Который находит родитель <tr> с closest, а затем <td class="user"> с find.

Рабочий пример: http://jsfiddle.net/FishBasketGordo/Bk6ML/

API Ссылки:

+0

Первый способ не работает, когда alert userNo значение возвращает undefined, а при использовании шкафа во втором, функция возврата не существует! – palAlaa

+0

Во втором примере была опечатка, которую я исправил. См. Рабочий пример. – FishBasketGordo

Смежные вопросы