我正在使用 JQuery 关键字 this。
我遇到了一些我不明白的事情。
这是我的代码:
<body>
<a id="link_1">jQuery.com</a>
<!-- adding JQUERY -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<!-- my JavaScript -->
<script>
$("a").attr("href", "target_1");
$("a").attr("new_attribute", "new_attribute_value");
$(function ($) {
$("a").mouseenter(function(){
alert(this.id);
alert(this.href);
alert(this.new_attribute);
});
});
</script>
</body>
我希望 JQuery 返回 id、href 和我的 new_attribute 作为警报消息。
我可以在关键字“this”(使用 this.id)上调用 id,它会按预期工作。
我还可以调用关键字 this 上的 href(使用 this.href),并且它按预期工作(即使我仅使用 JQuery 设置 href 的值(非内联))。
然而,使用新属性“new_attribute”,这种设置和获取无法按预期工作。
我的问题:我究竟做错了什么?是否只能在关键字“this”上调用“某些/有限”属性。
这是因为new_attribute
不是有效的属性。
一些内置属性会映射到属性,当您这样做时
this.id
你真的得到了id
属性,而不是属性,因为那样
this.getAttribute('id')
你可以做
this.getAttribute('new_attribute')
但你真的应该使用data-*
属性,不是你自己的,而是 jQuery 的data()
在内部映射数据并且不添加属性,但在您的情况下这可能就是您想要的,只需在元素上存储任意数据
$("a").attr("href", "target_1");
$("a").data("new_attribute", "new_attribute_value");
$(function ($) {
$("a").mouseenter(function(){
alert(this.id);
alert(this.href);
alert( $(this).data('new_attribute') );
});
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)