用法一
.data( key, value ) => jQuery
.data( key, value ) => jQuery
说明:存储与匹配元素关联的任意数据。
.data()
方法允许我们以一种安全的方式将任何类型的数据附加到 DOM 元素,从而避免循环引用,从而避免内存泄漏。
我们可以为单个元素设置几个不同的值并稍后检索它们:
|
使用 data()
方法更新数据不会影响 DOM 中的属性。要设置 data-*
属性值,请使用 attr
。
在 jQuery 1.4.3 之前,.data( obj )
完全替换了所有数据。从 jQuery 1.4.3 开始,数据改为通过浅合并扩展。
自从jQuery 3, 每个 two-character 序列的 "-" (U+002D) 后跟一个小写 ASCII 字母的键被替换为字母的大写版本,与HTML 数据集 API.像这样的声明$( "body" ).data( { "my-name": "aValue" } ).data();
将返回{ myName: "aValue" }
.
由于浏览器与插件和外部代码交互的方式,.data()
方法不能用于<object>
(除非它是 Flash 插件)、<applet>
或 <embed>
元素。
其他注意事项:
- 请注意,此方法当前不提供cross-platform 支持在 XML 文档上设置数据,因为 Internet Explorer 不允许通过 expando 属性附加数据。
undefined
未被识别为数据值。.data( "name", undefined )
之类的调用将返回调用它的 jQuery 对象,从而允许链接。
例子:
存储然后从 div 元素中检索一个值。
|
演示:
用法二
.data( key ) => Object
.data( key ) => Object
说明:返回与 jQuery 集合中的第一个元素关联的任意数据,由 data() 或 HTML5 设置data-*
属性。
.data()
方法允许我们读取以前与 DOM 元素关联的数据。我们可以一次检索单个元素的多个不同值,也可以作为一组检索:
|
不带参数调用 .data()
会返回一个 JavaScript 对象,其中包含每个存储的值作为属性。该对象可直接用于获取数据值(但请注意,最初包含破折号的属性名称将按如下所述进行修改)。
自从jQuery 3, 每个 two-character 序列的 "-" (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
解析;它必须遵循 valid JSON syntax including quoted property names
。无法解析为 JavaScript 值的字符串不会被转换。
要将 data-*
属性值检索为未转换的字符串,请使用 attr()
方法。
自 jQuery 1.6 起,data-*
属性名称中的破折号已按照 HTML dataset API 进行处理。
例如,给定以下 HTML:
|
以下比较均属实:
|
其他注意事项:
- 请注意,此方法当前不提供cross-platform 支持在 XML 文档上设置数据,因为 Internet Explorer 不允许通过 expando 属性附加数据。
例子:
获取为元素存储的名为"blah" 的数据。
|
演示:
相关用法
- JQuery .dblclick()用法及代码示例
- JQuery .delay()用法及代码示例
- JQuery .die()用法及代码示例
- JQuery .detach()用法及代码示例
- JQuery .delegate()用法及代码示例
- JQuery .dequeue()用法及代码示例
- JQuery .jquery用法及代码示例
- JQuery .scroll()用法及代码示例
- JQuery .add()用法及代码示例
- JQuery .contextmenu()用法及代码示例
- JQuery .undelegate()用法及代码示例
- JQuery .load()用法及代码示例
- JQuery .contents()用法及代码示例
- JQuery .empty()用法及代码示例
- JQuery UI .labels()用法及代码示例
- JQuery UI .addClass()用法及代码示例
- JQuery .click()用法及代码示例
- JQuery UI .toggleClass()用法及代码示例
- JQuery .removeAttr()用法及代码示例
- JQuery .addClass()用法及代码示例
- JQuery UI .cssClip()用法及代码示例
- JQuery .next()用法及代码示例
- JQuery UI .hide()用法及代码示例
- JQuery .promise()用法及代码示例
- JQuery .trigger()用法及代码示例
注:本文由纯净天空筛选整理自jquery.com大神的英文原创作品 .data()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。