我有一个表,如果我点击任何一行,它应该返回行“id”号。我使用了 closest() 函数。但问题是 closest() 选择了它下面的所有“tr” .有没有办法限制函数只遍历一行数据。
比如我的 table
<tr id="0">
<td>data0</td>
</tr>
<tr id="1">
<td>data1</td>
</tr>
<tr id="2">
<td>data2</td>
</tr>
<tr id="3">
<td>data3</td>
</tr>
<tr id="4">
<td>data4</td>
</tr>
如果我单击 id=2 的第三行,它应该只返回那个单独的 id 和 td(data2)。 这是我目前正在尝试的代码。
$("#myTable tr").click(function(){
trid = $(this).closest('tr').attr('id');
alert(trid);
return trid;
});
我试过使用 next() 或 find() 但我最终得到了未定义的错误。谢谢。
最佳答案
我认为你误解了.closest()
的概念。它向上遍历到父级,而 .find()
向下遍历到 children/grandchildren。
因此,根据您的代码,您似乎想要获得被点击元素的 ID。那么你可以这样做:
trid = this.id;
在您的代码中,this
指的是您正在点击的 tr
。
注意事项:
刚刚注意到您正在使用名为 trid
的全局 var
,因为它没有 var
关键字。因此,如果您不小心使用了它,那么您可以在上面的代码中像这样添加 var trid
。
关于javascript - 如何限制 closest() 只遍历一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27718327/