使用$ .data("value")与$ .attr("data-value")

nba*_*bar 3 javascript jquery html5 html5-data

当我jQuery.data用来更改值时,DOM中的属性不会更改.但我喜欢当DOM中的属性发生变化时,它更容易调试.

那么可以$().attr("data-value")用来改变数据属性吗?

只是一点点小提示,表明混合$().attr$().data不能很好地协同工作:

http://jsfiddle.net/AvRJc/

T.J*_*der 9

data函数管理jQuery提供的元素的数据缓存,而不是data-*属性.之间的唯一互连data功能和data-*属性是data初始化它从信息缓存data-*,如果你要求一个相匹配的关键属性data-*的属性.

使用data设定数据将永远不会更新data-*属性.

它的优良使用attr更新的属性,你只需要保持一致:既可以使用属性(通过attr)两者的获取和设置,或者使用data两个获取和设置,因为他们管理不同的东西.

使用attr意味着您实际上正在更新元素上的属性,这意味着您可以使用您在选择器等中设置的值(CSS和jQuery),但也意味着您只能获取和设置字符串值.

使用data意味着你只更新数据缓存,而不是元素,这意味着你不能在选择器中使用这些值等(因为它们不存储在DOM中的任何位置),但意味着你可以获得并设置完整JavaScript数据类型的范围.