Javascript jQuery.data的使用

Javascript jQuery.data的使用,javascript,jquery,Javascript,Jquery,好吧,我承认:我已经广泛地使用jQuery.attr在很多很多脚本中的DOM元素中存储自定义数据。我想知道是否将所有脚本转换为使用jQuery.data而不是jQuery.attr。据我所知,jQuery.data的优点是: 生成简洁有效的HTML代码 可以在元素上存储任何类型的数据(对象、数组等) 自定义属性的主要优点是: 如果网页不是严格的HTML,我可以在服务器上生成带有自定义属性的HTML代码 在firebug中,在搜索自定义属性时很容易检查HTML代码 有人能告诉我,我是否遗漏

好吧,我承认:我已经广泛地使用jQuery.attr在很多很多脚本中的DOM元素中存储自定义数据。我想知道是否将所有脚本转换为使用jQuery.data而不是jQuery.attr。据我所知,jQuery.data的优点是:

  • 生成简洁有效的HTML代码
  • 可以在元素上存储任何类型的数据(对象、数组等)
自定义属性的主要优点是:

  • 如果网页不是严格的HTML,我可以在服务器上生成带有自定义属性的HTML代码
  • 在firebug中,在搜索自定义属性时很容易检查HTML代码

有人能告诉我,我是否遗漏了一些东西,或者是否存在使用jQuery.data的问题,这是非常可取的吗?

我认为您不会遗漏任何东西,但是将数据存储在dom元素属性上总是一种不好的做法,因此我认为您应该使用$.data函数。

您基本上做到了。但是你知道每个HTML属性吗?屏幕阅读器和其他可用性工具使用的许多属性都不是标准的。当您意外地使用了
角色
属性,而屏幕阅读器拾取该属性时,会发生什么情况?使用
$.data
不仅更整洁,而且对您更安全,更有意义

编辑:昨晚我学到了一些与这个问题相关的东西。在HTML5中,可以指定用于存储数据的自定义属性。必须使用前缀“data-”指定这些自定义属性。有关更多详细信息,请参阅


这意味着,您不必返回并更改所有旧代码,因为如果您以“data-”作为前缀,您将永远不必担心与其他属性重叠。但是,如果需要存储比字符串更复杂的数据类型,请使用
$.data

详细说明一下好吗?对我来说,这样做是不对的,但我不知道为什么。