获取点击tr时被点击的td

Getting the td that was clicked when a tr was clicked

本文关键字:td tr 获取      更新时间:2023-09-26

假设我为所有TR设置了一个点击事件,自然每个TR都充满了TD,所以当你点击TR时,你也点击了TD。是否存在捕获由于TR被单击而被单击的TD(或其索引)的方法?

我想也许是这样的,但我什么也没得到。

$('tbody').on('click', 'tr', function(){
    var thisEq = $(this+' td').index();
    alert("thisEq: "+thisEq);
});

Demo

event.target可以得到td

$('tbody').on('click', 'tr', function(e){
    var thisEq = $(e.target).index();
    alert("thisEq: "+thisEq);
});

注意:.index()给出0 to n值,因此您将首先得到0 td

将问题倒过来-检测点击了哪个td并检测父tr。

$('td').on('click', function(){
    var tr = $(this).parent('tr');
    alert(tr);
 });

您也可以通过使用委托事件处理程序来做到这一点。这个与每个tr元素挂钩但你也可以像其他提交者刚才提议的那样将它挂钩到body

 $('tr').on( 'click', 'td', function() {
 ...
 });