我更喜欢使用 lang、dir、id、class 等属性来存储一些引用这些对象的 javascript 函数的有用数据——我这样做是为了避免使用在每次操作或更改后可能必须更新的数组。问题是这是一种不好的做法,我不能总是使用我想要的属性,因为它们已经在使用中,或者在某些标签类型上不可用。有没有更好的办法?
请注意,我不喜欢使用分隔符拆分多个值,因为在处理大量对象时这很慢。
我更喜欢使用 lang、dir、id、class 等属性来存储一些引用这些对象的 javascript 函数的有用数据——我这样做是为了避免使用在每次操作或更改后可能必须更新的数组。问题是这是一种不好的做法,我不能总是使用我想要的属性,因为它们已经在使用中,或者在某些标签类型上不可用。有没有更好的办法?
请注意,我不喜欢使用分隔符拆分多个值,因为在处理大量对象时这很慢。
HTML5data-*
属性是专门为此设计的。从规范:
自定义数据属性旨在存储页面或应用程序私有的自定义数据,没有更合适的属性或元素。
你可以像这样使用它们:
<div data-random="12345" data-name="James"></div>
它们对所有元素都有效,并且每个元素都可以有任意数量的元素。
它们可以通过每个元素都应该具有的dataset
属性来访问。如果您使用 jQuery,您可以使用该data
方法来帮助解决旧浏览器(和 IE)的问题。如果没有,您可能必须对dataset
属性进行特征检测并退回到getAttribute
不dataset
支持的位置。
由于您标记了 jQuery 和 HTML5,我认为这正是您正在寻找的,以一种优雅和标准化的方式,而不会破坏验证。