如果你使用jQuery类库,那么你可以非常愉悦的使用jquery的data()方法存取data-* 自定义属性,方法允许我们在DOM元素上绑定任意类型的数据,避免了循环引用的内存泄漏风险

主要的方法如下:

复制代码代码如下:
.data( key, value )
.data( obj )
.data( key )
.data()

从jQuery 1.4.3起, HTML 5 data- 属性 将自动被引用到jQuery的数据对象中。
例如HTML:

复制代码代码如下:
<div data-role = "page" data-last-value = "43" data-hidden = "true" data-options = '{"name":"John"}' > </div>

下面的 jQuery代码都是返回 true 的:

复制代码代码如下:
$ ( "div" ) . data ( "role" ) === "page" ;
$ ( "div" ) . data ( "lastValue" ) === 43 ;
$ ( "div" ) . data ( "hidden" ) === true ;
$ ( "div" ) . data ( "options" ) . name === "John" ;

和html5的api不同的是,jQuery会尝试将字符串转换为一个JavaScript值(包括布尔值(booleans),数字(numbers),对象(objects),数组(arrays)和空(null))。如果这样做不会改变数值的表示,那么该值将转换为一个数字(number)。例如,“1E02”和“100.000”是等同于数字(数字值100),但将转换它们会改变他们的表示,所以他们被保留为字符串。字符串值“100”被转换为数字100。

如果数据(data)属性是一个对象(以“{”开始)或数组(以'[‘开始),可以用jQuery.parseJSON 将其解析成字符串;它必须遵循 有效的JSON的语法 ,包括带双引号的属性名称。如果该值不能解析为一个JavaScript值,它将被保留为字符串。

如果想将取出的属性值直接当作字符串的话,请使用 attr() 方法。
data-属性是在第一次使用这个数据属性后不再存取或改变(所有的数据值都在jQuery内部存储)。
调用 .data() 时如果不带参数,将会以 JavaScript 对象的形式获取所有数据。这个对象可以安全的存放在变量中,因为一旦这个新对象被提取出来,之后对元素进行的 .data(obj) 操作,将不会再影响这个对象。另外,直接操作这个对象会比每次调用 .data() 来设置或获取值要快一些。

jQuery中的data方法只能获取不能设置值?

http://blog.csdn.net/Felix__XP/article/details/51496649

最新文章

  1. Mongodb系统管理员权限设置
  2. Testing - 测试基础 - 自动
  3. 【转载】python super的用法
  4. Find Minimum in Rotated Sorted Array II leetcode
  5. .net Int16 、(int Int32)、 Int64 的区别
  6. C++ 学习的网站
  7. 局部变量、结构体和main函数
  8. weka数据预处理
  9. MVC架构杂谈
  10. Android自定义视图教程
  11. HDOJ(HDU) 2304 Electrical Outlets(求和、、)
  12. StringBuilder和string.Format性能对比
  13. mysqlbinlog详解
  14. Hibernate逆向工程全过程
  15. Django中ModelForm应用
  16. springboot配置swagger2
  17. Oracle数据库游标精解
  18. 将pucharm与anaconda配合使用
  19. maven pom添加本地jar,不提交私库
  20. Maven中使用本地JAR包

热门文章

  1. python使用set来去重碰到TypeError: unhashable type
  2. Ruby 安装和gem配置
  3. Centos75 firewalld防火墙
  4. poj1942 Paths on a Grid(无mod大组合数)
  5. Python3.6(windows系统)安装pip.whl
  6. Python学习札记(二十二) 函数式编程3 filter &amp; SyntaxError: unexpected EOF while parsing
  7. 请问使用jmeter在tcp取样器测试中服务器名称或ip,端口可以填变量值吗?
  8. mis权限系统
  9. adb connect 192.168.1.10 failed to connect to 192.168.1.10:5555
  10. python 匹配指定后缀的文件名