2011-09-01 91 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中我想从第二td获得属性“ID”的值,当解除按钮用户点击。

我作出这样

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),遍历到父(含有解除按钮的<td>)。然后,到类user的前兄弟<td>,并获得id属性。

另外,如果你想避免依赖于事实的解除按钮处于<td>用户名的<td>,你可以这样做后:

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

closest,然后查找父<tr><td class="user">find

工作例如:http://jsfiddle.net/FishBasketGordo/Bk6ML/

API参考:

+0

第一种方式不起作用,当alertNo值返回时未定义,并且当在第二个中使用closet时,返回函数不存在! – palAlaa

+0

第二个例子有一个错误,我纠正了。查看工作示例。 – FishBasketGordo