好吧,我承认:我已广泛使用jQuery.attr在多个很多脚本中的DOM元素中存储自定义数据.我想知道是否将我的所有脚本转换为使用jQuery.data而不是jQuery.attr.据我所知,jQuery.data的优点是:
生成整洁有效的HTML代码
可以在元素上存储任何类型的数据(对象,数组,...)
自定义属性的主要优点是:
如果WEB页面不是严格的HTML,我可以在服务器上生成带有自定义属性的HTML代码
在firebug中,很容易检查我的HTML代码以搜索我的自定义属性
有人可以告诉我,如果我错过了某些东西,或者是否存在使jQuery.data更受欢迎的问题?
你差不多了.但是你知道每个 HTML属性吗?屏幕阅读器和其他非标准(可用)的可用性工具使用了很多属性.当您不小心使用该role
属性并且屏幕阅读器选择了该怎么办时会发生什么?使用$.data
不仅更整洁,对您来说更安全,更有意义.
编辑:我昨晚学到的东西与这个问题有关.在HTML5中,您可以指定用于存储数据的自定义属性.必须使用前缀"data-"指定这些自定义属性.有关更多详细信息,请参阅规范.
这意味着,您不必返回并更改所有旧代码,因为如果您使用"data-"作为前缀,则永远不必担心与其他属性重叠.但是,如果您需要存储比字符串更复杂的数据类型,请使用$.data
.