如何浏览器处理HTML元素无效/未指定的属性?(How browsers handle invali

2019-07-20 07:12发布

对于examlpe,如果我有这样的:

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

我可以是安全的浏览器没有将忽略(并因此使得从传统的JavaScript无法访问)的myattribute ? 我知道,这是丑陋的,而不是标准的,但是是非常有用的。 或者,如果他们这样做,将jQuery的仍然能够得到他们?

Answer 1:

浏览器不会抱怨无法识别的属性,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>


Answer 2:

您应该使用data的属性,他们的网络标准。

像这样:

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

然后在jQuery的你可以这样做:

var value = $("#blah").data("myattribute");


Answer 3:

为什么不使用的属性数据的数据属性,HTML5 ?



Answer 4:

浏览器会忽略无效的属性。 如果要指定自己的属性使用数据 - 属性,因为其识别为有效。

上的数据的属性的w3文档

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



文章来源: How browsers handle invalid/unspecified attributes on HTML elements?