我想向按钮添加事件侦听器,并且我对纯 javascript 编码还比较陌生,所以我不知道本机等效项是什么$this
在我的代码中
// the markup
<ul class="menu">
<li><a href="#" data-something="value">text</a></li>
<li><a href="#" data-something="value2">text2</a></li>
</ul>
var menu = document.querySelector(".menu");
menu.addEventListener("click", function(){
// console.log $(this).val
// what I wanted is to get that data-attribute of the clicked item
});
在事件处理程序内this
将表示事件处理程序绑定到的元素。您不会拥有 jQuery 提供的所有实用功能。因此,在您的示例中,您将无法使用以下方法检索数据属性this.data("something")
要检索自定义属性的值,代码必须将事件传递给函数。来自event
or e
在该示例中,target
属性将包含触发事件的元素,由于事件的传播,该元素可能并不总是绑定事件处理程序的元素。使用getAttribute
方法来检索自定义属性的值。另外,不要将自定义属性设置为大写,因为 html 规范不允许这样做,并且会创建不可访问的属性。
var menu = document.querySelector(".menu");
menu.addEventListener("click", function(e){
alert(e.target.getAttribute("data-something"));
});
JSFiddle: http://jsfiddle.net/pjcvB/ http://jsfiddle.net/pjcvB/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)