对于考试,如果我有这个:
<div id="blah" myattribute="something">whatever</div>
我可以安全地认为没有浏览器会忽略(因此无法通过旧版JavaScript渲染)myattribute
吗?我知道这很丑陋而且不标准,但非常有用。或者,如果他们这样做,jQuery仍然能够得到它们吗?
答案 0 :(得分:5)
您应该使用data
属性,他们是网络标准。
像这样:
<div id="blah" data-myattribute="something">whatever</div>
然后在jQuery中你可以这样做:
var value = $("#blah").data("myattribute");
答案 1 :(得分:3)
浏览器不会抱怨无法识别的属性,Javascript和jQuery仍然可以访问它们:
console.log( $('#blah').attr('myattribute') ); // something
console.log( document.getElementById('blah').getAttribute('myattribute') ); // something
但是,您应该使用HTML5 data-*
属性,该属性专门用于自定义属性。 jQuery有data()
方法来访问/设置它们:
<div id="blah" data-myattribute="something">whatever</div>
<script>
console.log( $('#blah').data('myattribute') ); // something
</script>
答案 2 :(得分:2)
为什么不使用数据属性Data-attributes, HTML5?
答案 3 :(得分:1)
浏览器将忽略无效的属性。如果要指定自己的属性,请使用data-属性,因为这被认为是有效的。
关于数据属性的w3文档