我有一个html元素,想要在OnClick事件中读取数据属性
<a id="downloadFile" class="btn btn-success" href="javascript:;" data="MyData">Download file</a>
如果我使用下面的代码,请参阅href属性而不是A元素。如何引用A元素并读取数据值?
$('#downloadFile').click(function() {
alert(this.attr('data')); //I get error that 'href' do not has 'data' attribute, this code refers to href attribute and not to A element
});
答案 0 :(得分:4)
在事件处理程序的上下文中,this
引用DOM元素,而不是jQuery对象。使用$(this)
获取jQuery对象,以便您可以使用attr
函数:
$('#downloadFile').click(function() {
alert($(this).attr('data'));
});
另一种选择是使用this.getAttribute("data")
。
<强> DEMO 强>
答案 1 :(得分:1)
您可以拥有自定义数据属性,并将其与-
<强> Live Demo 强>
<a id="downloadFile" class="btn btn-success" href="javascript:;" data-yourhref="MyData">Download file</a>
$('#downloadFile').click(function() {
alert($(this).data('yourhref')); //Get error that href do not has data atribute, this refered to href atribute and not to A element
});
答案 2 :(得分:0)
您使用此方法引用js对象,但使用jquery语法。
尝试:
$(this).attr('href')
答案 3 :(得分:0)
仅为Jquery
的正确选择器更改此项$('#downloadFile').click(function() {
alert($('#downloadFile').attr('data')); //Get error that href do not has data atribute, this refered to href atribute and not to A element
});