You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

点击<td>元素无法获取data-id属性值,返回undefined的问题

点击td获取data-id返回undefined的修复方案

问题出在箭头函数的this指向上:箭头函数不会绑定自身的this,它的this继承自外层上下文,所以这里的$(this)并不是被点击的<td>元素,自然获取不到data-id属性。

修复方法有两种:

方法1:改用普通函数作为事件回调

普通函数的this会自动指向触发事件的DOM元素:

$(document).on('click', '#table-content td', function(e) {
   console.log("td onclick called")
   console.log($(this).attr('data-id')); // 输出"test"
   // 也可以用jQuery的data方法
   console.log($(this).data("id")); // 同样输出"test"
});

方法2:继续用箭头函数,通过事件对象获取目标元素

借助事件参数e的currentTarget属性(确保指向绑定事件的td,避免事件冒泡时拿到子元素):

$(document).on('click', '#table-content td', e => {
   console.log("td onclick called")
   const $td = $(e.currentTarget);
   console.log($td.attr('data-id'));
   console.log($td.data("id"));
});

内容的提问来源于stack exchange,提问作者Murphstar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 12:10:19