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触发器详解
Mar 10 Javascript
使用IE6看老赵的博客 jQuery初探
Jan 17 Javascript
javascript学习笔记(七)Ajax和Http状态码
Oct 08 Javascript
分享使用AngularJS创建应用的5个框架
Dec 05 Javascript
JQuery和PHP结合实现动态进度条上传显示
Nov 23 Javascript
JS实现页面进入和返回定位到具体位置
Dec 08 Javascript
js实现简单的手风琴效果
Feb 27 Javascript
Vue监听数组变化源码解析
Mar 09 Javascript
微信小程序多音频播放进度条问题
Aug 28 Javascript
微信小程序实现列表页的点赞和取消点赞功能
Nov 02 Javascript
详解Vue+ElementUI从零开始搭建自己的网站(一、环境搭建)
Apr 30 Javascript
js实现多个标题吸顶效果
Jan 08 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
pw的一个放后门的方法分析
2007/10/08 PHP
php 日期时间处理函数小结
2009/12/18 PHP
PHP数据库调用类调用实例(详细注释)
2012/07/12 PHP
javascript 类定义的4种方法
2009/09/12 Javascript
JQuery Highcharts 动态生成图表的方法
2013/11/15 Javascript
jquery设置按钮停顿3秒不可用
2014/03/07 Javascript
深入了解Node.js中的一些特性
2014/09/25 Javascript
javascript模拟实现ajax加载框实例
2014/10/15 Javascript
jQuery三级下拉列表导航菜单代码分享
2020/04/15 Javascript
jQuery实现带延迟的二级tab切换下拉列表效果
2015/09/01 Javascript
原生js实现淘宝购物车功能
2020/06/23 Javascript
微信小程序开发入门基础教程
2017/04/19 Javascript
在Vue methods中调用filters里的过滤器实例
2018/08/30 Javascript
ng-events类似ionic中Events的angular全局事件
2018/09/05 Javascript
Nodejs实现多文件夹文件同步
2018/10/17 NodeJs
Vue项目实现简单的权限控制管理功能
2019/07/17 Javascript
Emberjs 通过 axios 下载文件的方法
2019/09/03 Javascript
axios实现简单文件上传功能
2019/09/25 Javascript
如何实现echarts markline标签名显示自己想要的
2020/07/20 Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
2020/07/27 Javascript
微信小程序自定义底部弹出框功能
2020/11/18 Javascript
[01:00:54]TI4正赛第二日开场
2014/07/20 DOTA
python实现类似ftp传输文件的网络程序示例
2014/04/08 Python
不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决
2017/09/24 Python
python Pillow图像处理方法汇总
2019/10/16 Python
教你使用Sublime text3搭建Python开发环境及常用插件安装另分享Sublime text3最新激活注册码
2020/11/12 Python
瑞士国际航空官网:SWISS
2016/07/21 全球购物
土木工程专业自荐信
2013/10/04 职场文书
高中校园广播稿
2014/01/11 职场文书
个人党性分析材料
2014/12/19 职场文书
2015年保安个人工作总结
2015/04/02 职场文书
结婚主持人致辞
2015/07/28 职场文书
2016年第十九届推普周活动总结
2016/04/06 职场文书
公开致歉信
2019/06/24 职场文书
Python可变集合和不可变集合的构造方法大全
2021/12/06 Python
Python+SeaTable实现计算两个日期间的工作日天数
2022/07/07 Python