繁体   English   中英

jQuery-单击时检测TD ID

[英]jQuery - Detect TD ID on click

当我单击表的行时,我试图获取TD ID。

我一直在寻找实现这一目标的方法,并找到了一种方法。 但是每次我单击时,都会弹出一个警报,但它是一个空文本。 使用控制台,我看到的是错误代码为“ undefined”。

这是我的代码:

function chooseCell() {
let square = 0;
let squareNumber = 0;
$("td").click((e) => {
    let data = $(this).attr('id');
    alert (data);
    for (square in squarePositions) {
            squareNumber += 1;
            if (square[1] <= e.pageX <= square[3] && square[0] <= e.pageY <= square[2]) {
                alert(squareNumber);
                alert("Square Number : " + squareNumber);

            }
        }
    }
)}

如果我将Alert(data)替换为:

alert($('td').attr('id'));

警报会弹出第一个表的TD。 每当我单击其他TD时,都会显示第一个ID

有人知道如何显示当前单击的ID吗? 在Google和SOF上没有我的问题的答案

非常感谢。致以最诚挚的问候。

您正在为事件处理程序使用箭头功能。

在全局上下文中执行时,箭头函数不会重新定义其自身。 而是使用封闭执行上下文的this值,等效于将此视为封闭值。

$("td").click((e) => {
    let data = $(this).attr('id');
    alert (data);
     // ...
});

因此,在您的代码中, this并不像您期望的那样引用td 您可以使用event.target通过以下代码访问td

let data = $(e.target).attr('id');

或者,您也可以使用常规函数代替箭头函数,现在this将引用td

$("td").click(function(e){
    let data = $(this).attr('id');
    alert (data);
     // ...
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM