使用属性存储值

Using attributes to store values

本文关键字:存储 属性      更新时间:2023-09-26

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

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

HTML5 data-*属性是专门为此设计的。从规格:

自定义数据

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

您可以像这样使用它们:

<div data-random="12345" data-name="James"></div>

它们对所有元素都有效,并且每个元素都可以具有任意数量的元素。

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

由于您同时标记了jQuery和HTML5,我认为这正是您正在寻找的,以一种优雅和标准化的方式,而不会破坏验证。

HTML5 数据-* 属性