使用$ .data(“value”)与$ .attr(“data-value”)

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

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

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

http://jsfiddle.net/AvRJc/

data函数管理jQuery提供的元素的数据缓存,而不是data-*属性。 data函数和data-*属性之间唯一的互连是,如果请求与data-*属性匹配的密钥, data-*将从data-*属性初始化其信息缓存。

使用data 设置数据永远不会更新data-*属性。

使用attr更新属性是很好的,你只需要保持一致:使用属性 (通过attr )获取和设置, 或者使用data进行获取和设置,因为它们管理不同的东西。

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

使用data意味着您只更新数据缓存,而不是元素,这意味着您不能在选择器中使用这些值等(因为它们不存储在DOM中的任何位置),但意味着您可以获取和设置全系列的JavaScript数据类型。