使用属性存储值

Joh*_*all 1 javascript html5

我更喜欢使用lang,dir,id,class等属性来存储引用这些对象的一些javascript函数的有用数据 - 我这样做是为了避免使用在每次操作或更改后都必须更新的数组.问题是这是一个不好的做法,我不能总是使用我想要的属性,因为它们已经在使用或在某些标签类型上不可用.有没有更好的办法?

请注意,我不喜欢使用分隔符分隔多个值,因为在处理大量对象时这很慢.

Jam*_*ice 7

HTML5 data-*属性专门为此而设计.从规格:

自定义数据属性旨在将自定义数据存储为页面或应用程序的私有数据,因为没有更合适的属性或元素.

您可以像这样使用它们:

<div data-random="12345" data-name="James"></div>
Run Code Online (Sandbox Code Playgroud)

它们对所有元素都有效,每个元素都可以包含任意元素.

可以通过dataset属性访问它们,每个元素都应该具有.如果您使用jQuery,则可以使用该data方法来帮助解决旧浏览器(和IE)的问题.如果没有,你可能要功能检测dataset性能和回退到getAttribute哪里dataset,不支持.