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窗口功能指南之在窗口中书写内容
Jul 21 Javascript
js window.onload 加载多个函数的方法
Nov 02 Javascript
jQuery获取浏览器中的分辨率实现代码
Apr 23 Javascript
intro.js 页面引导简单用法 分享
Aug 06 Javascript
使用jQuery将多条数据插入模态框的实现代码
Oct 08 Javascript
javascript内置对象操作详解
Feb 04 Javascript
关于JavaScript限制字数的输入框的那些事
Aug 14 Javascript
JavaScript 通过Ajax 动态加载CheckBox复选框
Aug 31 Javascript
关于vue中watch检测到不到对象属性的变化的解决方法
Feb 08 Javascript
jQuery实现的简单获取索引功能示例
Jun 04 jQuery
vue 避免变量赋值后双向绑定的操作
Nov 07 Javascript
如何理解Vue简单状态管理之store模式
May 15 Vue.js
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 删除cookie方法详解
2014/12/01 PHP
PHP图像处理类库MagickWand用法实例分析
2015/05/21 PHP
mysql desc(DESCRIBE)命令实例讲解
2016/09/24 PHP
PHP的mysqli_thread_id()函数讲解
2019/01/24 PHP
Laravel timestamps 设置为unix时间戳的方法
2019/10/11 PHP
javascript跑马灯悬停放大效果实现代码
2012/12/12 Javascript
javascript ie6兼容position:fixed实现思路
2013/04/01 Javascript
获取非最后一列td值并将title设为该值的方法
2013/10/30 Javascript
jQuery实现弹出窗口中切换登录与注册表单
2015/06/05 Javascript
JQuery实现网页右侧随动广告特效
2016/01/17 Javascript
js动态生成form 并用ajax方式提交的实现方法
2016/09/09 Javascript
angularjs实现多张图片上传并预览功能
2017/02/24 Javascript
angular学习之ngRoute路由机制
2017/04/12 Javascript
浅谈vue项目重构技术要点和总结
2018/01/23 Javascript
JS实现音量控制拖动
2020/01/15 Javascript
微信小程序点击生成朋友圈分享图(遇到的坑)
2020/06/17 Javascript
vue使用element-ui实现表单验证
2020/12/13 Vue.js
[47:52]DOTA2-DPC中国联赛正赛 iG vs LBZS BO3 第二场 3月4日
2021/03/11 DOTA
python实现电子词典
2020/04/23 Python
Python探索之Metaclass初步了解
2017/10/28 Python
Python Pandas对缺失值的处理方法
2019/09/27 Python
python dumps和loads区别详解
2020/02/04 Python
Python进程Multiprocessing模块原理解析
2020/02/28 Python
python操作ini类型配置文件的实例教程
2020/10/30 Python
CSS3 圆角效果
2009/07/15 HTML / CSS
CSS3 仿微信聊天小气泡实例代码
2017/04/05 HTML / CSS
新英格兰最大的特色礼品连锁店:The Paper Store
2018/07/23 全球购物
入党积极分子思想汇报
2014/01/02 职场文书
业务部门经理岗位职责
2014/02/23 职场文书
护校行动方案
2014/05/31 职场文书
优秀应届本科生求职信
2014/07/19 职场文书
大学拉赞助协议书范文
2014/09/26 职场文书
党的群众路线教育实践活动批评与自我批评范文
2014/10/16 职场文书
举起手来观后感
2015/06/09 职场文书
公司转让协议书
2016/03/19 职场文书
MySQL千万级数据表的优化实战记录
2021/08/04 MySQL