好吧,我承认:我已经广泛使用 jQuery.attr 在很多很多脚本中将自定义数据存储在 DOM 元素中。我想知道是否将我所有的脚本都转换为使用 jQuery.data 而不是 jQuery.attr。据我了解,jQuery.data 的优点是:
- 生成简洁有效的 HTML 代码
- 可以在元素上存储任何类型的数据(对象、数组...)
自定义属性的主要优点是:
- 如果 WEB 页面不是严格的 HTML,我可以在服务器上生成具有自定义属性的 HTML 代码
- 在 firebug 中很容易检查我的 HTML 代码以搜索我的自定义属性
如果我遗漏了什么或者是否存在使用 jQuery.data 的问题,有人可以告诉我吗?
最佳答案
你几乎明白了。但是您知道每个 HTML 属性吗?屏幕阅读器和其他非标准(尚未)可用性工具使用了很多属性。如果您不小心使用了 role
属性并且屏幕阅读器发现了它,会发生什么?使用 $.data
不仅更简洁,而且对您来说更安全,也更有意义。
编辑:我昨晚学到了与这个问题相关的东西。在 HTML5 中,您可以指定用于存储数据的自定义属性。这些自定义属性必须使用前缀“data-”指定。参见 the spec了解更多详细信息。
这意味着您不必返回并更改所有旧代码,因为如果您以“data-”为前缀,您将永远不必担心与其他属性重叠。但是,如果您需要存储比字符串更复杂的数据类型,请使用 $.data
。
关于javascript - jQuery.data 的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1334754/