.data( key, value )返回值: jQuery
描述: 存储与匹配元素关联的任意数据。
-
添加版本: 1.2.3.data( key, value )
-
添加版本: 1.4.3.data( obj )
-
obj类型: 对象要更新的键值对数据的对象。
-
.data()
方法允许我们将任何类型的数据附加到 DOM 元素,这种方式可以避免循环引用,从而防止内存泄漏。
我们可以为单个元素设置多个不同的值,并在以后检索它们。
1
2
3
4
5
|
|
使用 data()
方法更新数据不会影响 DOM 中的属性。要设置 data-*
属性值,请使用 attr
。
在 jQuery 1.4.3 之前,.data( obj )
会完全替换所有数据。从 jQuery 1.4.3 开始,数据会通过浅层合并进行扩展。
从 jQuery 3 开始,键中每个由 "-" (U+002D) 后跟小写 ASCII 字母组成的两个字符序列都会被替换为该字母的大写版本,这与 HTML 数据集 API 一致。类似 $( "body" ).data( { "my-name": "aValue" } ).data();
的语句将返回 { myName: "aValue" }
。
由于浏览器与插件和外部代码的交互方式,.data()
方法不能用于 <object>
(除非它是 Flash 插件)、<applet>
或 <embed>
元素。
其他说明
- 请注意,此方法目前不提供跨平台支持,无法在 XML 文档上设置数据,因为 Internet Explorer 不允许通过扩展属性附加数据。
-
undefined
不被识别为数据值。类似.data( "name", undefined )
的调用将返回它被调用的 jQuery 对象,允许进行链式操作。
示例
从 div 元素中存储然后检索一个值。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
|
演示
.data( key )返回值: 对象
描述: 返回与 jQuery 集合中的第一个元素关联的任意数据,该数据由 data() 或 HTML5 data-*
属性设置。
-
添加版本: 1.2.3.data( key )
-
key类型: 字符串存储数据的名称。
-
-
添加版本: 1.4.data()
- 此签名不接受任何参数。
.data()
方法允许我们读取之前与 DOM 元素关联的数据。我们可以一次检索单个元素的多个不同值,或者作为一组检索。
1
2
3
4
5
6
7
|
|
在不带参数的情况下调用 .data()
会返回一个 JavaScript 对象,其中包含每个存储的值作为属性。该对象可以直接用于获取数据值(但请注意,最初包含连字符的属性名称将根据以下描述进行修改)。
从 jQuery 3 开始,键中每个由 "-" (U+002D) 后跟小写 ASCII 字母组成的两个字符序列都会被替换为该字母的大写版本,这与 HTML 数据集 API 一致。类似 $( "body" ).data( { "my-name": "aValue" } ).data();
的语句将返回 { myName: "aValue" }
。
HTML5 data-*
属性
从 jQuery 1.4.3 开始,data-*
属性 用于初始化 jQuery 数据。元素的 data-*
属性在第一次调用 data()
方法时被检索,之后不再被访问或修改(所有值都由 jQuery 在内部存储)。
会尽力将属性的字符串值转换为 JavaScript 值(包括布尔值、数字、对象、数组和 null)。字符串仅在转换不会改变其表示形式时才会转换为数字(例如,字符串 "100" 会转换为数字 100,但 "1E02" 和 "100.000" 会保留为字符串,因为它们的数值 100 序列化为 "100")。当字符串以 '{' 或 '[' 开头时,jQuery.parseJSON
用于解析它;它必须遵循 有效的 JSON 语法 *包括引号引起来的属性名*。无法解析为 JavaScript 值的字符串不会被转换。
要检索 data-*
属性值作为未转换的字符串,请使用 attr()
方法。
从 jQuery 1.6 开始,data-*
属性名称中的连字符已根据 HTML 数据集 API 进行处理。
例如,给定以下 HTML
1
|
|
以下比较都是正确的
1
2
3
4
|
|
其他说明
- 请注意,此方法目前不提供跨平台支持,无法在 XML 文档上设置数据,因为 Internet Explorer 不允许通过扩展属性附加数据。
示例
获取元素中名为 "blah" 的数据。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
|