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

标签 javascript jquery html html5-data

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

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

只是一个 fiddle 来表明混合 $().attr$().data 不能很好地协同工作:

http://jsfiddle.net/AvRJc/

最佳答案

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/

相关文章:

javascript - 基于对象的 Canvas javascript 事件

javascript - 在多个对象属性字段上存储单个元素的属性

php - 有没有一种方法可以在不按提交按钮的情况下自动触发提交?

javascript - 谷歌地图标记数据

javascript - 如何仅使用 HTML5 和 JavaScript 将文件从我的机器传输到 vpn 中的另一台机器

php - 使用 jQuery 遍历 JSON 数据

javascript - 无法让地理编码器与文本框谷歌地图 API 一起使用

html - 奇怪的 Html Css 错误

javascript - 如何在 vue js html 中使用数组检查 v-if 条件?

javascript - TD a href 内的 HTML DIV