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

如何通过onclick方法获取HTML元素的data属性?

问题原因

你代码的核心问题是内联onclick事件调用函数时,this的指向错误:
直接写onclick="return AddFeedVotes()"时,函数内部的this默认指向全局window对象,而非你点击的<a>元素,所以$(this)找不到对应元素的data-*属性,自然返回undefined。

解决方案

方案1:修改内联调用逻辑,主动传入当前元素

第一步:修改所有<a>标签的onclick属性,把当前元素作为参数传入函数:

<a ...  onclick="return AddFeedVotes(this)"></a>

第二步:修改JS函数,接收传入的元素参数,用参数替换原来的this:

function AddFeedVotes(el) {
    var vote = $(el).data('datac');
    var type = $(el).data('type');
    var flagid = $(el).data('flagid');
                
    alert(vote);
    alert(type);
    alert(flagid);    
}

方案2:移除内联onclick,改用jQuery事件绑定(更推荐)

不需要在HTML里写onclick属性,直接通过元素公共类绑定点击事件,此时this会自动指向触发事件的元素:

// 页面加载完成后绑定事件
$(document).ready(function() {
  // 你的a标签都有btnsnew类,直接用这个类绑定
  $('.btnsnew').click(function(e) {
    e.preventDefault(); // 阻止a标签默认的#跳转行为
    var vote = $(this).data('datac');
    var type = $(this).data('type');
    var flagid = $(this).data('flagid');
    
    alert(vote);
    alert(type);
    alert(flagid);
  })
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 09:48:00