5

例如,如果我有这个:

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

我可以确保没有浏览器会忽略(从而使旧版 JavaScript 无法访问)myattribute吗?我知道这很丑陋且不标准,但非常有用。或者如果他们这样做了,jQuery 仍然能够得到它们吗?

4

4 回答 4

5

您应该使用data属性,它们是网络标准。

像这样:

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

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

var value = $("#blah").data("myattribute");
于 2013-02-21T14:14:38.573 回答
4

浏览器不会抱怨无法识别的属性,Javascript 和 jQuery 仍然可以访问它们:

console.log( $('#blah').attr('myattribute') ); // something
console.log( document.getElementById('blah').getAttribute('myattribute') ); // something

但是,您应该使用data-*专门用于自定义属性的 HTML5 属性。jQuery 有data()访问/设置它们的方法:

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

<script>
console.log( $('#blah').data('myattribute') ); // something
</script>
于 2013-02-21T14:19:02.253 回答
2

为什么不使用 data-attributes Data-attributes, HTML5

于 2013-02-21T14:14:37.947 回答
1

浏览器将忽略无效属性。如果您想指定自己的属性,请使用 data- 属性,因为这被认为是有效的。

关于数据属性的 w3 文档

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

于 2013-02-21T14:14:34.203 回答