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

为何jQuery点击事件返回对象而非data-id的数值1?求排查错误

问题原因及修正方案

嘿,这个问题很典型,我来帮你捋清楚~

你点击后弹出对象而非数值1的问题,根源就在这行代码里:

alert($($(this).data("id")));

错误原因

$(...)是jQuery的核心构造函数,它的作用是根据传入的选择器、DOM元素或其他参数创建一个jQuery对象。你这里把$(this).data("id")获取到的数值1又套了一层$(),相当于执行了$(1)——这时候jQuery会把这个数字当成特殊参数处理,最终返回的是一个jQuery对象,而非你想要的原始数值1。

其实$(this).data("id")已经直接返回了你需要的数值(jQuery的.data()方法会自动把data-id属性的字符串值转换成对应的数值类型),完全不需要再用$()包裹它。

修正后的代码

把多余的$()去掉就可以正常弹出数值1了:

$(".live_item").on("click",function(){ 
    alert($(this).data("id")); 
});

另外补充个小知识点:如果你用.attr("data-id")来获取的话,得到的会是字符串"1",如果需要数值的话得手动转换(比如parseInt($(this).attr("data-id"), 10)),而.data()会自动帮你完成类型转换,用起来更省心~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:12:11