html5的自定义data-*属性和jquery的data()方法的使用示例_jquery

人们总喜欢往HTML标签上添加自定义属性来存储和操作数据。但这样做的问题是,你不知道将来会不会有其它脚本把你的自定义属性给重置掉,此外,你这样做也会导致html语法上不符合Html规范,以及一些其它副作用。这就是为什么在HTML5规范里增加了一个自定义data属性,你可以拿它做很多有用的事情。

你可以去读一下HTML5的详细规范,但这个自定义data属性的用法非常的简单,就是你可以往HTML标签上添加任意以 "data-"开头的属性,这些属性页面上是不显示的,它不会影响到你的页面布局和风格,但它却是可读可写的。

下面的一个代码片段是一个有效的HTML5标记:

复制代码 代码如下:

<div id="awesome"
data-myid="3e4ae6c4e">Some awesome data</div>

可是,怎么来读取这些数据呢?你当然可以遍历页面元素来读取你想要的属性,但jquery已经内置了方法来操作这些属性。使用jQuery的.data()方法来访问这些"data-*" 属性。其中一个方法就是 .data(obj),这个方法是在 jQuery1.4.3版本后出现的,它能返回相应的data属性。

举个例子,你可以用下面的写法读取 data-myid属性值:

复制代码 代码如下:

var myid= jQuery("#awesome").data('myid');
console.log(myid);

你还可以在"data-*" 属性里使用json语法,例如,如果你写出下面的html:

复制代码 代码如下:

<div id="awesome-json" data-awesome='{"game":"on"}'></div>

你可以通过js直接访问这个数据,通过json的key值,你能得到相应的value:

复制代码 代码如下:

var gameStatus= jQuery("#awesome-json").data('awesome').game;
console.log(gameStatus);

你也可以通过.data(key,value)方法直接给"data-*" 属性赋值。一个重要的你要注意的事情是,这些"data-*" 属性应该和它所在的元素有一定的关联,不要把它当成存放任意东西的存储工具。

补充:尽管"data-*" 是HTML5才出现的属性,但jquery是通用的,所以,在非HTML5的页面或浏览器里,你仍然可以使用.data(obj)方法来操作"data-*" 数据

时间: 2024-10-26 10:37:18

html5的自定义data-*属性和jquery的data()方法的使用示例_jquery的相关文章

jQuery.clean使用方法及思路分析_jquery

一.jQuery.clean使用方法jQuery.clean( elems, context, fragment, scripts );二.思路分析1.处理参数context,确保其为文档根节点document2.处理参数elems数组(循环遍历数组) 2.1.elem为数字,转换为字符串 2.2.elem为非法值,跳出本次循环 2.3.elem为字符串 2.4.字符串不存在实体编号或html标签,则创建文本节点 2.5.字符串为实体编号或html标签 复制代码 代码如下: 创建一个div元素并

jQuery四种选择器使用及示例_jquery

 jQuery 元素选择器  jQuery 使用 CSS 选择器来选取 HTML 元素.  $("p") 选取 <p> 元素.  $("p.intro") 选取所有 class="intro" 的 <p> 元素.  $("p#demo") 选取所有 id="demo" 的 <p> 元素.  示例代码: jquery 部分 $(document).ready(functio

jQuery的bind()方法使用详解_jquery

bind()方法用法详解: 此方法是使用比较频繁的方法之一,虽然在API手册上有着对方法的介绍,但是由于语言简短,例子不够详细,可能会造成不能够完全准确的掌握bind()方法的使用,下面就结合实例介绍一下此方法的使用. 语法格式: $(selector).bind(type,[data],function(eventObject)) 此方法可以为所有匹配元素的特定事件绑定事件处理函数,例如: <!DOCTYPE html> <html> <head> <meta

jQuery.buildFragment使用方法及思路分析_jquery

一.jQuery.buildFragment使用方法 1.参数 jQuery.buildFragment( args, context, scripts );2.返回值 return { fragment: fragment, cacheable: cacheable }; 二.思路分析 1.处理context参数 根据传入到context参数值的不同,确保context为文档根节点document 2.限制可缓存条件 2.1.字符串小于512字节 2.2.字符串不存在option标签(克隆op

详解jquery中$.ajax方法提交表单_jquery

复制代码 代码如下: function postdata(){                        //提交数据函数       $.ajax({                                //调用jquery的ajax方法           type: "POST",                       //设置ajax方法提交数据的形式           url: "ok.php",                   

Jquery使用css方法改变样式实例_jquery

本文实例讲述了Jquery使用css方法改变样式.分享给大家供大家参考.具体实现方法如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> &

jQuery事件绑定方法学习总结(推荐)_jquery

对于jQuery中的事件绑定方法,主要有on().bind().delegate().live()等这几个方法.之前都是之前拿过来用,也知道有这么几个方法,但是不清楚这几个事件绑定方法之间的区别.平时用的最多的是on方法,今天打算整理一下. bind方法 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatibl

jquery统计复选框选中示例_jquery

以前我使用js只能判断遍历再获取 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title

jQuery使用post方法提交数据实例_jquery

本文实例讲述了jQuery使用post方法提交数据的用法.分享给大家供大家参考.具体实现方法如下: <!DOCTYPE html> <html> <head> <script src="js/jquery.min.js"> </script> <script> $(document).ready(function(){ $("button").click(function(){ $.post(&