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 相关文章推荐
JQuery切换显示的效果实例代码
Feb 27 Javascript
封装html的select标签的js操作实例
Jul 02 Javascript
Javascript 多浏览器兼容总结(实战经验)
Oct 30 Javascript
JavaScript运行时库属性一览表
Mar 14 Javascript
Angularjs的ng-repeat中去除重复数据的方法
Aug 05 Javascript
Javascript设计模式之装饰者模式详解篇
Jan 17 Javascript
Angular 4.x 动态创建表单实例
Apr 25 Javascript
JS沙箱模式实例分析
Sep 04 Javascript
js实现鼠标跟随运动效果
Aug 02 Javascript
vue实现文章内容过长点击阅读全文功能的实例
Dec 28 Javascript
jQuery实现遍历XML节点和属性的方法示例
Apr 29 jQuery
Vue下路由History模式打包后页面空白的解决方法
Jun 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生成EXCEL的东东
2006/10/09 PHP
php中ftp_chdir与ftp_cdup函数用法
2014/11/18 PHP
PHP设计模式之模板模式定义与用法详解
2018/12/20 PHP
PHP7新增函数
2021/03/09 PHP
extjs grid取到数据而不显示的解决
2008/12/29 Javascript
Js日期选择自动填充到输入框(界面漂亮兼容火狐)
2013/08/02 Javascript
优化Jquery,提升网页加载速度
2013/11/14 Javascript
Node.js实现简单聊天服务器
2014/06/20 Javascript
node.js中的console.error方法使用说明
2014/12/10 Javascript
js的window.showModalDialog及window.open用法实例分析
2015/01/29 Javascript
JavaScript实现的链表数据结构实例
2015/04/02 Javascript
JavaScript获取页面中表单(form)数量的方法
2015/04/03 Javascript
jQuery 更改checkbox的状态,无效的解决方法
2016/07/22 Javascript
利用jQuery来动态为属性添加或者删除属性的简单方法
2016/12/02 Javascript
基于jQuery实现弹幕APP
2017/02/10 Javascript
Vue.js中用webpack合并打包多个组件并实现按需加载
2017/02/17 Javascript
JavaScript箭头(arrow)函数详解
2017/06/04 Javascript
angular中不同的组件间传值与通信的方法
2017/11/04 Javascript
js 数组详细操作方法及解析合集
2018/06/01 Javascript
Vue分页器实现原理详解
2019/06/28 Javascript
Python 开发Activex组件方法
2009/11/08 Python
Pyhthon中使用compileall模块编译源文件为pyc文件
2015/04/28 Python
python函数中return后的语句一定不会执行吗?
2017/07/06 Python
Python IDLE清空窗口的实例
2018/06/25 Python
pandas重新生成索引的方法
2018/11/06 Python
python 两个数据库postgresql对比
2019/10/21 Python
Django choices下拉列表绑定实例
2020/03/13 Python
Html5元素及基本语法详解
2016/08/02 HTML / CSS
财务部副经理岗位职责
2014/03/14 职场文书
年终总结会主持词
2014/03/25 职场文书
党的群众路线教育实践活动查摆剖析材料
2014/10/10 职场文书
街道社区活动报告
2015/02/05 职场文书
大学考试作弊检讨书
2015/05/06 职场文书
如何做好工作总结!
2019/04/10 职场文书
mysql部分操作
2021/04/05 MySQL
Redis过期数据是否会被立马删除
2022/07/23 Redis