使用$ .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数据类型。