jQuery中使用data()方法读取HTML5自定义属性data-*实例


Posted in Javascript onApril 11, 2014

主要的方法如下:

.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() 来设置或获取值要快一些。

Javascript 相关文章推荐
javascript jQuery插件练习
Dec 24 Javascript
深入解析contentWindow, contentDocument
Jul 04 Javascript
使用node.js 获取客户端信息代码分享
Nov 26 Javascript
js行号显示的文本框实现效果(兼容多种浏览器 )
Oct 23 Javascript
浅谈json取值(对象和数组)
Jun 24 Javascript
jqGrid用法汇总(全经典)
Jun 28 Javascript
关于iframe跨域POST提交的方法示例
Jan 15 Javascript
Vue监听数据对象变化源码
Mar 09 Javascript
AngularJS中的路由使用及实现代码
Oct 09 Javascript
利用CDN加速react webpack打包后的文件详解
Feb 22 Javascript
Js生成随机数/随机字符串的方法小结【5种方法】
May 27 Javascript
JavaScript事件委托实现原理及优点进行
Aug 29 Javascript
JavaScript使用HTML5的window.postMessage实现跨域通信例子
Apr 11 #Javascript
jQuery实现鼠标经过图片预览大图效果
Apr 10 #Javascript
jQuery实现级联菜单效果(仿淘宝首页菜单动画)
Apr 10 #Javascript
js获取视频时长代码
Apr 10 #Javascript
js转化毫秒为时间格式代码
Apr 10 #Javascript
jquery移除、绑定、触发元素事件使用示例详解
Apr 10 #Javascript
jquery序列化表单去除指定元素示例代码
Apr 10 #Javascript
You might like
php 生成随机验证码图片代码
2010/02/08 PHP
php简单实现MVC
2015/02/05 PHP
解决Laravel5.5下的toArray问题
2019/10/15 PHP
尽可能写&quot;友好&quot;的&quot;Javascript&quot;代码
2007/01/09 Javascript
JavaScript prototype属性深入介绍
2012/11/27 Javascript
THREE.JS入门教程(6)创建自己的全景图实现步骤
2013/01/25 Javascript
JS 实现点击a标签的时候让其背景更换
2013/10/15 Javascript
javascript单例模式的简单实现方法
2015/07/25 Javascript
AngularJS使用ngMessages进行表单验证
2015/12/27 Javascript
AngularJS教程 ng-style 指令简单示例
2016/08/03 Javascript
微信开发 消息推送实现代码
2016/10/21 Javascript
详解vue slot插槽的使用方法
2017/06/13 Javascript
JS实现快速比较两个字符串中包含有相同数字的方法
2017/09/11 Javascript
详解Vue改变数组中对象的属性不重新渲染View的解决方案
2018/09/21 Javascript
vue头部导航动态点击处理方法
2018/11/02 Javascript
ES10 特性的完整指南小结
2019/03/04 Javascript
12个提高JavaScript技能的概念(小结)
2019/05/09 Javascript
vue 兄弟组件的信息传递的方法实例详解
2019/08/30 Javascript
vue.js使用v-model实现父子组件间的双向通信示例
2020/02/05 Javascript
在Vuex中Mutations修改状态操作
2020/07/24 Javascript
解决Vue-cli无法编译es6的问题
2020/10/30 Javascript
[02:16]DOTA2超级联赛专访Burning 逆袭需要抓住机会
2013/06/24 DOTA
[01:01:23]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第一场 11.26
2020/11/30 DOTA
[47:31]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.12
2020/12/16 DOTA
python双向链表实现实例代码
2013/11/21 Python
Python ORM框架SQLAlchemy学习笔记之关系映射实例
2014/06/10 Python
Python打包方法Pyinstaller的使用
2018/10/09 Python
用Python编写一个高效的端口扫描器的方法
2018/12/20 Python
详解Django中CBV(Class Base Views)模型源码分析
2019/02/25 Python
django 自定义过滤器(filter)处理较为复杂的变量方法
2019/08/12 Python
pytorch模型存储的2种实现方法
2020/02/14 Python
廉洁教育学习材料
2014/05/19 职场文书
2014年建筑工程工作总结
2014/12/03 职场文书
2015年统计员个人工作总结
2015/07/23 职场文书
退休劳动合同怎么写?
2019/10/25 职场文书
pytorch 权重weight 与 梯度grad 可视化操作
2021/06/05 Python