当我使用 jQuery.data
更改值时,DOM 中的属性不会更改。
但我喜欢当 DOM 中的属性发生变化时,它更容易调试东西。
那么可以使用 $().attr("data-value")
来更改数据属性吗?
只是一个 fiddle 来表明混合 $().attr
和 $().data
不能很好地协同工作:
最佳答案
data
函数管理 jQuery 提供的元素的数据缓存,而不是 data-*
属性。 data
函数和 data-*
属性之间的唯一互连是 data
将初始化它的信息缓存data-*
属性,如果您请求与 data-*
属性匹配的键。
使用 data
来设置数据永远不会更新 data-*
属性。
可以使用 attr
来更新属性,您只需要保持一致:要么使用 attribute(通过 attr
)获取和设置,或使用数据
获取和设置,因为它们管理不同的事情。
使用 attr
意味着您实际上是在更新元素上的属性,这意味着您可以使用您在选择器等(CSS 和 jQuery)中设置的值,但也意味着您受到限制仅获取和设置字符串值。
使用 data
意味着您只更新数据缓存,而不是元素,这意味着您不能在选择器等中使用这些值(因为它们它们不存储在 DOM 中的任何位置),但这意味着您可以获得和设置所有 JavaScript 数据类型。
关于javascript - 使用 $.data ("value") 与 $.attr ("data-value"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18844744/