我更喜欢使用lang,dir,id,class等属性来存储引用这些对象的一些javascript函数的有用数据 - 我这样做是为了避免使用在每次操作或更改后都必须更新的数组。问题是这是一个不好的做法,我不能总是使用我想要的属性,因为它们已经在使用或在某些标签类型上不可用。 还有更好的方法吗?
请注意,我不喜欢使用分隔符分割多个值,因为在处理大量对象时这很慢。
答案 0 :(得分:7)
HTML5 data-*
attributes专为此而设计。来自规范:
自定义数据属性旨在存储私有的自定义数据 页面或应用程序,没有更合适的 属性或元素。
您可以像这样使用它们:
<div data-random="12345" data-name="James"></div>
它们对所有元素都有效,每个元素都可以包含任意数量。
可以通过dataset
property访问它们,每个元素都应该有。{3}}。如果您使用jQuery,则可以使用data
方法来帮助解决older browsers (and IE)的问题。如果没有,您可能需要检测dataset
属性,然后回退到getAttribute
不支持dataset
的位置。
答案 1 :(得分:0)
由于您标记了jQuery和HTML5,我认为这正是您正在寻找的,以优雅和标准化的方式,而不会破坏验证。