我想知道是否点击了td
的最后tr
。这是我的HTML示例:
<table>
<tr>
<td>Foo</td>
<td>Bar</td>
<td>Clicked</td>
</tr>
</table>
这是我目前的javascript代码(不是那样的):
$('table').on('click', 'tr', function(e) {
if ($(this).find('td').is(':last-child')){
alert("Last td clicked!");
}
});
注意:我需要将tr-selector
用于其他目的。因此,重要的是,点击是指tr
。
答案 0 :(得分:3)
尝试使用tr td:last-child
选择器进行以下操作。
$('table').on('click', 'tr td:last-child', function (e) {
alert("Last td clicked!");
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td>Foo</td>
<td>Bar</td>
<td>Clicked</td>
</tr>
</table>
&#13;
根据更新的问题
更新
$('table').on('click', 'tr', function (e) {
if($(e.target).is(':last-child')) {
alert("Last td clicked!");
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td>Foo</td>
<td>Bar</td>
<td>Clicked</td>
</tr>
</table>
&#13;
答案 1 :(得分:1)
您不需要.find()
。另外,您想检查是否点击了上一个td
或者tr
?无论哪种方式,你只需这样做:
$('table').on('click', 'td', function(e) {
if($(this).is(':last-child')){
alert("Last td clicked!");
}
});
<强> DEMO 强>
答案 2 :(得分:1)
将事件监听器直接添加到最后一个子级
HTML
<table>
<tr>
<td>Foo</td>
<td>Bar</td>
<td>Clicked</td>
</tr>
</table>
的Javascript
$('table').on('click', 'tr td:last-child', function(e) {
alert("Last td clicked!");
});
答案 3 :(得分:1)
此答案假定事件处理程序对所有<td>
元素都是通用的,并且想要区分最后一个元素
不更改事件处理程序:
事件对象包含被单击元素的引用。这可以使用。
event
对象中的target
属性包含实际单击的元素的引用。 jQuery is()
可用于检查元素是否是<tr>
中的最后一个。
$('table').on('click', 'tr', function(e) {
console.log($(e.target).is($(this).find('td:last')));
// OR
// console.log($(e.target).is(':last-child'));
});
<td>
该事件可以绑定在<td>
内的<table>
元素上,:last-child
选择器可以与is()
一起使用,以检查点击的元素是否是最后一个子。
$('table tr').on('click', 'td', function(e) {
console.log($(this).is(':last-child'));
});