当我使用jQuery.data
更改值时,DOM中的属性不会更改。
但我喜欢当DOM中的属性发生变化时,它更容易调试。
使用$().attr("data-value")
更改数据属性是否可以?
只是有点小提示,表明混合$().attr
和$().data
不能很好地协同工作:
答案 0 :(得分:9)
data
函数管理jQuery提供的元素的数据缓存,而不是data-*
属性。 data
函数和data-*
属性之间的唯一互连是,如果您请求密钥,data
将初始化来自data-*
属性的信息缓存匹配data-*
属性。
使用data
设置数据永远不会更新data-*
属性。
使用attr
更新属性很好,只需要保持一致:使用属性(通过attr
)进行获取和设置,<强>或使用data
获取和设置,因为他们管理不同的事情。
使用attr
意味着你真的在更新元素的属性,这意味着你可以使用你在选择器等中设置的值(包括CSS和jQuery),但也意味着你只能使用和只设置字符串值。
使用data
意味着您只更新数据缓存,而不是元素,这意味着您无法在选择器中使用这些值等(因为它们没有存储DOM中的任何位置,但意味着您可以获取并设置所有JavaScript数据类型。