浏览器如何处理HTML元素上的无效/未指定属性?

时间:2013-02-21 14:12:39

标签: javascript jquery html web

对于考试,如果我有这个:

<div id="blah" myattribute="something">whatever</div>

我可以安全地认为没有浏览器会忽略(因此无法通过旧版JavaScript渲染)myattribute吗?我知道这很丑陋而且不标准,但非常有用。或者,如果他们这样做,jQuery仍然能够得到它们吗?

4 个答案:

答案 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文档

http://www.w3.org/TR/2011/WD-html5-20110525/elements.html#embedding-custom-non-visible-data-with-the-data-attributes