我有一个表格,其中每一行都有一个像这样的CSS ID:
<table>
<tr id='1'>...</tr>
<tr id='2'>...</tr>
<tr id='3'>...</tr>
</table>
在一行中,用户可以单击单元格中的特定元素。我想找到已被点击的行。
例如:
<tr id='x'><td></td>...<td><div class='someclass'><div class='anotherclass'></div></div></td>...</tr>
在这种情况下,我想在用户点击class ='anotherclass'元素时做出响应。我想获取包含此单击元素的行的id但我不想使用$(this).parent()。parent()。parent()....等因为有多个级别的父级它变得丑陋。
有多种方法可以多次使用.parent()获取包含此元素的行吗?
更新:谢谢大家。那是完美的。
答案 0 :(得分:6)
使用closest()
:
$('.anotherclass').click(function () {
alert($(this).closest('tr').prop('id'));
});
答案 1 :(得分:1)
使用closest
:
$(".anotherclass").click(function() {
console.log($(this).closest("tr").attr("id"));
});
来自文档:
获取与选择器匹配的第一个元素,从 当前元素并在DOM树中前进。
答案 2 :(得分:1)
你可以使用它。
$('.anotherclass').click(function () {
alert($(this).parents('tr').attr("id"));
});