为什么总是获取不到a标签的自定义属性?


<a class="button button-glow button-border button-rounded button-primarybtn-xs" onclick="clickBtn();return false;"  data-href="/cancel/2">取消</a>


    function  clickBtn() {
        var data_href=$(this).attr("data-href");
        alert(data_href);//undefined
    }

请问 为什么获取不到a标签的自定义属性???

阅读 4.7k
4 个回答

jquery有现成的data方法不用,非要去用attr....

<a id="demo" data-href="test">取消</a>

$("#demo").on('click', function(){
    console.log($(this).data("href"));
});

极其不推荐使用onclick()这样的方式写点击事件,其他事件也是一样的,耦合太高,可维护性极低。
极其不推荐使用onclick()这样的方式写点击事件,其他事件也是一样的,耦合太高,可维护性极低。
极其不推荐使用onclick()这样的方式写点击事件,其他事件也是一样的,耦合太高,可维护性极低。

问题已经解决,漏掉了参数



<a class="button button-glow button-border button-rounded button-primarybtn-xs" onclick="clickBtn(this);return false;"  data-href="/cancel/2">取消</a>


    function  clickBtn(dom) {
        var data_href=$(dom).attr("data-href");
        alert(data_href);//undefined
    }

你需要通过JQuery绑定事件监听器才能使用$(this)获取目标元素:

<a id="click" data-href="11">取消</a>

$('#click').click(function  clickBtn() {
    var data_href=$(this).attr("data-href");
    console.log(data_href);//11
})

原生的js事件和jQuery的事件混写的错误,因为jQuery对象和dom对象是不一样的,如果你非得这样混写,就要实现两种不同的对象的转换

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题