javascript - jQuery.data 的使用

标签 javascript jquery

好吧,我承认:我已经广泛使用 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/

相关文章:

javascript - 如何将 json.stringify() 分配给 javascript 变量

javascript - 如何在 Javascript 中查找属性的所有者

javascript - 如何为 ngrx/store 2.2.1 配置 system-config.js

javascript - 在 moment.js 中获取两个时间之间的小时数

c# - JQuery UI 模态表单对话框将数据保存到数据库

javascript - ||和 javascript 中的 onmessage

javascript - 可拖动 div 来控制溢出 div

jquery - 从 fancybox-inner div 中删除白色背景颜色

javascript - 如何合并 img 和 data 属性

php - 将 jQuery UI Datepicker 选择的日期获取到 PHP session 变量?