HTML5的data-*自定义属性

HTML5增加了一项新功能是自定义数据属性,也就是data-*自定义属性。在HTML5中我们可以使用以data-为前缀来设置我们需要的自定义属性,来进行一些数据的存放。当然高级浏览器下可通过脚本进行定义和数据存取。在项目实践中非常有用。目前采取这样的做法的框架也有很多,最常见的当属jQueryMobile。
具体使用方法例下:

<div id = "head" data-home = "http://blog.csdn.net/xmtblog" data-author = "伪专家"></div>

在传统的做法中我们可以配合jquery使用,如下:

$("#head").attr("data-home");
$("#head").attr("data-home","new");

或者纯js做法:
在IE浏览器里,我们通过获取对象后直接调用就可以了

document.getElementById("head").["data-home"];
document.getElementById("head").["data-home"] = "new";

在火狐和谷歌浏览器里,我们可以通过getAttribute方法来实现调用:

document.getElementById("head").getAttribute("data-home");
document.getElementById("head").setAttribute("data-home","new");

再HTML5中的简洁操作方法:(dataset属性存取data-*自定义属性的值)
这种方式通过访问一个元素的 dataset 属性来存取 data-* 自定义属性的值。这个 dataset 属性是HTML5 JavaScript API的一部分,用来返回一个所有选择元素 data- 属性的DOMStringMap对象。
使用这种方法时,不是使用完整的属性名,如data-home来存取数据,应该去掉data-前缀。
还有一点特别注意的是:data-属性名如果包含了连字符,例如:data-date-of-birth ,连字符将被去掉,并转换为驼峰式的命名,前面的属性名转换后应该是:dateOfBirth。

<div id = "head" data-home = "http://blog.csdn.net/xmtblog" data-author = "伪专家" data-date-of-birth>QQ群:135430763</div>
<script type="text/javascript">
	var el = document.querySelector('#head');
	console.log(el.id);
	console.log(el.dataset);//一个DOMStringMap
	console.log(el.dataset.home);
	console.log(el.dataset.author);
	console.log(el.dataset.dateOfBirth);
	el.dataset.dateOfBirth = '1985-01-05'; // 设置data-date-of-birth的值.
	//判断属性
	console.log('testAttr' in el.dataset);//false
	el.dataset.testAttr = 'testAttr';
	console.log('testAttr' in el.dataset);//true
</script>

如果你想删掉一个 data-属性 ,可以这么做: delete el.dataset.home ;  或者 el.dataset.home = null;。
这样操作起来是不是非常的方便。但有些浏览器可能还不支持。所以在此期间最好用的getAttribute和setAttribute来操作或配合jquery进行使用。
data-属性选择器
在实际开发时,可以根据自定义的data-属性选择相关的元素。例如使用querySelectorAll选择元素:
//选择所有包含'data-div'属性的元素
document.querySelectorAll ('[data-div]') ;
//选择所有包含'data-a-href' 属性值为red的元素
document.querySelectorAll ('[data-a-href="#"]') ;
同样的我们也可以通过data-属性值对相应的元素设置CSS样式,例如下面这个例子:

<style type ="text/css">
    .head {
         width : 256px ;
         height : 200px ;
     }

    .head[data-a='btn-a'] {
         color : brown
    }

    .head[data-a='btn-color'] {
         color : red
    }
</style>
<div class = "head" data-qq = "QQ群:135430763" data-a = "btn-a" > button按钮 </div>
<div class = "head" data-qq = "QQ群:135430763" data-a = "btn-color" > button按钮</div>

欢迎大家关注我的博客!如有疑问,请加QQ群:135430763共同学习! 

时间: 2024-10-26 17:58:47

HTML5的data-*自定义属性的相关文章

Web前沿—HTML5 Form Data 对象的使用

XMLHttpRequest Level 2 添加了一个新的接口--FormData.利用 FormData 对象,我们可以通过 JavaScript 用一些键值对来模拟一系列表单控件,我们还可以使用 XMLHttpRequest 的 send() 方法来异步的提交表单.与普通的 Ajax 相比,使用 FormData 的最大优点就是我们可以异步上传二进制文件. 创建一个FormData对象 你可以先创建一个空的 FormData 对象,然后使用 append() 方法向该对象里添加字段,如下:

使用jQuery获取data-的自定义属性_jquery

废话少说,先上代码 jQuery.fn.dataset = function(attr, val) { // 获取数据集 if (arguments.length == 0) { var dataset = {}; jQuery(this).eq(0).each(function() { var attrs = this.attributes; for (var i = 0, l = attrs.length; i < l; i++) { var attr = attrs[i]; if (/^d

分享8个超棒的基于HTML5和jQuery的开发教程

日期:2011/12/15  来源:GBin1.com HTML5 和jQuery组合目前对于web开发人员来说是强大的工具之一,使用这个组合能够帮助你扩展你设计的局限,实现一些非常绚丽及其强大的web应用或者网 站.尤其是最近jQuery 1.0的发布,更助力了移动设备的开发.现在已经有很多的开发人员和设计人员开始使用HTML5和jQuery配合开发来显示各种特效.今天我们将给大家 推荐8个精心选择的HTML5和jQuery组合开发的教程,希望对大家有帮助,如果你喜欢这些教程,请给我们留言,谢

分享平时整理收集的11款jQuery插件,很好很强大

☆ ☆ ☆ ☆ ☆ jQuery表单验证插件 jQuery表单验证插件是一款优秀的jquery插件,它能对客户端表单进行验证,并且提供了许多可以定制的属性和方法,良好的扩展性,使用量也是最多的一种表单验证方法.经过了全球范围内不同项目的验证,并得到了许多Web开发者的好评. jQuery-File-Upload插件 jQuery- File-Upload插件支持多文件上传,拖拽文件上传,进度条,预览图片.视频和音频. 支持跨域上传,分块上传和可恢复的文件上传和客户端图像调整.可以在支持标准HTM

:before和:after伪类元素创造神奇效果

文章简介:伪类元素之美. 通过使用:before和:after,你能创作出让人称奇的视觉效果.对页面中的每个元素,你都有两个额外的可以控制的元素,本来这些是需要额外的元素来实现.他们给设计带来了更多的趣味性的空间,而不是增加无语义的有负面影响的标签.这里给大家整理了一堆让人称奇的东西.让我们开始吧! 给了你多层背景画布 因为你可以相对于他们的父元素绝对定位伪类元素,你可以把他们想象他们是每个元素的两个额外层.Nicolas Gallagher shows us 给我们展示了很多这种应用,包括多层

免费程序IcoMoon:把矢量图转换成Web字体

文章描述:在这篇教程中,我们将看看如何使用一个免费的Web应用程序IcoMoon将矢量图转换成Web字体.然后在看看如何使用生成的字体通过css应用到Web页面中. 我已经制为网站制作了一些优雅的图标,并且在新的网站和老的iPad上进行了测试.正常尺寸下,布局看看上去一切OK,但的将页面进行放大显示,我却发现我的icon变得模糊不清,但是基于文本的标题依然清晰可见.在具有Retina显屏的iPad上,这些图标看上去都不清晰,即使在没有进行任何放大的情况之下. 我第一想法就是创建双倍大小的Spri

jQuery性能优化技巧分析

 这篇文章主要介绍了jQuery性能优化技巧,较为详细的分析了jQuery的常见使用技巧,非常具有实用价值,需要的朋友可以参考下     本文较为详细分析了jQuery性能优化技巧.分享给大家供大家参考.具体分析如下: 一.使用最新版本的jQuery类库 jQuery新版本会较上个版本进行Bug修复和一些优化,不过需要注意的是,在更换版本之后,不要忘记测试你的代码,毕竟有时候不是完全向后兼容的. 二.使用合适的选择器 jQuery选择器性能最佳到最差方式如下: id选择器,如$('#id', c

如何把你的图标转换成WEB字体

  我已经制为网站制作了一些优雅的图标,并且在新的网站和老的iPad上进行了测试.正常尺寸下,布局看看上去一切OK,但的将页面进行放大显示,我却发现我的icon变得模糊不清,但是基于文本的标题依然清晰可见.在具有Retina显屏的iPad上,这些图标看上去都不清晰,即使在没有进行任何放大的情况之下. 我第一想法就是创建双倍大小的Sprite图,然后通过css样式,设置他们只显示二分之一尺寸.虽然这样的方法让他们在Retina屏上显示的大小是正常的,一旦你开始放大屏幕,图标又变得模糊不清.但文本还

jQuery中的编程范式详解_jquery

本文详细分析了jQuery中的编程范式.分享给大家供大家参考.具体如下: 浏览器前端编程的面貌自2005年以来已经发生了深刻的变化,这并不简单的意味着出现了大量功能丰富的基础库,使得我们可以更加方便的编写业务代码,更重要的是我们看待前端技术的观念发生了重大转变,明确意识到了如何以前端特有的方式释放程序员的生产力.这里将结合jQuery源码的实现原理,对javascript中涌现出的编程范式和常用技巧作一简单介绍.   1. AJAX: 状态驻留,异步更新 首先来看一点历史. A. 1995年Ne

FirstDay@JavaOne2017

[本次JavaOne的主要技术方向] Ecosystem 个人认为Java取得今天的成功,是因为有一个完整的生态系统.不管是持捐款的IBM,还是非商业性的User Group.而第一天的主题也是Community Day,除了一些工具和主题技术的介绍外,还有很多议题是这个Community的文化分享交流,比如有的议题就是How to build a successful Java User Group. Core Java&Related Java9介绍及Feature List JavaEE8