转:HTML5中的element.dataset
使用HTML5中的 element.dataset 操作自定义 data-* 数据:
不久之前我向大家展示了非常有用的classList API,它是一种HTML5里提供的原生的对页面元素的CSS类进行增、删改的接口,完全可以替代jQuery里的那些CSS类操作方法。而另外一个非常有用的API就是 element.dataset API,从火狐6和Chrome8起就开始对它有了支持。这个简单的API能够让用户get
或set
HTML页面元素上的data-*
属性。下面我们来看看它是如何使用的!
想必大家都知道,我们可以给HTML元素添加自定义的data-*
属性。你可以给这个属性起任何名字,但在使用element.dataset API时你需要主要以下一些规则:
- element.dataset不能够直接拿来用,否者你会遇到报错提示
- 用JavaScript里使用
data-*
属性名时,要把名称转变成驼峰式命名(Camel-Case) - 名称不能以xml打头
- 名称里不能有大写字母
假设页面里有下面的元素存在:
<div id="myDiv" data-name="myDiv" data-id="myId"
data-my-custom-key="This is the value"></div>
要想获取这个data-id
属性,你的代码应该写成这样:
// Get the element
var element = document.getElementById("myDiv"); // Get the id
var id = element.dataset.id;
要想获取data-my-custom-key
属性值,你的代码应该写成这样:
// Retrieves "data-my-custom-key"
var customKey = element.dataset.myCustomKey;
给自定义属性赋值的方法是这样的:
// Sets the value to something else
element.dataset.myCustomKey = "Some other value"; // Element would be:
// <div id="myDiv" data-name="myDiv" data-id="myId"
// data-my-custom-key="Some other value"></div>
如果一个自定义属性并不存在,但在程序中你给它赋值,它会自动创建:
// Set new data- attribute
element.dataset.mootoolsFtw = "true"; // Element would be:
// <div id="myDiv" data-name="myDiv" data-id="myId"
//data-my-custom-key="Some other value" data-mootools-ftw="true">
//</div>
也许你会认为data-*
属性里可以存放对象,但事实上不行,dataset不会初始化这些对象。我不清楚dataset对长度的限制,但在里面存放大量的数据必定会是DOM变得臃肿不堪,很难调试。喜欢使用jQuery的朋友应该知道jQuery里也有相应的$.data()
方法,没错,HTML5里的这个原生的dataset就是来替代它的,如果你的页面只需要简单的操作data-*
自定义属性,就不需要引入这些体积越来越多的jQuery工具库了,不是吗?
转自:http://www.webhek.com/element-dataset-api/
转:HTML5中的element.dataset的更多相关文章
- 使用HTML5中的element.dataset操作自定义data-*数据
不久之前我向大家展示了非常有用的classList API,它是一种HTML5里提供的原生的对页面元素的CSS类进行增.删改的接口,完全可以替代jQuery里的那些CSS类操作方法.而另外一个非常有用 ...
- HTML5中的数据集dataset和自定义属性data-*
在html5中可为所有元素添加一种自定义的属性,这种属性的前缀以data-开头,比如:data-name,目的是为元素提供与页面渲染无关,但与dom元素强相关的属性.添加完自定义属性后我们可以通过元素 ...
- HTML5中的自定义属性data-*
在html5中,给元素添加自定义属性需要用到data-*,比如data-name,添加完data-自定义属性之后通过元素的dataset属性来访问其值. dataset与getAttribute/se ...
- element.dataset API
不久之前我向大家展示了非常有用的classList API,它是一种HTML5里提供的原生的对页面元素的CSS类进行增.删改的接口,完全可以替代jQuery里的那些CSS类操作方法.而另外一个非常有用 ...
- HTML5中的SVG
* SVG * 基本内容 * SVG并不属于HTML5专有内容 * HTML5提供有关SVG原生的内容 * 在HTML5出现之前,就有SVG内容 * SVG,简单来说就是矢量图 * SVG文件的扩展名 ...
- HTML5中的data-*属性和jQuery中的.data()方法使用
原文地址链接:http://blog.csdn.net/fly_zxy/article/details/50687691: HTML5中的data-*属性 我们往往会根据需要在HTML标记上添加自定义 ...
- HTML5中的跨文档消息传递
跨文档消息传送(cross-document messaging),有时候也简称为XDM,指的是来自不同域的页面间传递消息.例如,www.w3cmm.com域中的一个页面与一个位于内嵌框架中的p2p. ...
- HTML5中Access-Control-Allow-Origin解决跨域问题
www.111cn.net 更新:2015-01-07 编辑:flyfox 来源:转载 跨域在开发中一些是一个比较常见的问题虽然有json或者xml来解决,现在html5开始流行了,我们可以通过Acc ...
- 说说HTML5中label标签的可访问性问题——张鑫旭
一.开篇叨叨 一般稍微有些经验的页面制作人员都知道label标签可以优雅地扩大表单控件元素的点击区域,例如,单纯的单选框点击区域就鼻屎那么大的地方,经常会点不到位置.因此,label标签的使用对于提高 ...
随机推荐
- WPF基础学习笔记整理 (七) Binding绑定
基础知识: 数据绑定是一种关系,该关系告诉WPF从源对象提取一些信息,并用这些信息设置目标对象的属性:目标对象始终是依赖属性,而源对象则可以是任何内容. BindingOperations类,提供静态 ...
- ubuntu16.04上安装tomcat7
sudo apt-get update sudo apt-get install tomcat7 启动:sudo service tomcat7 start 访问http://127.0.0.1:80 ...
- python 集合的运算
x = frozenset([, , , , ]) y = frozenset([, , , , ]) #如果x与y没有公共元素,返回true print(x.isdisjoint(y)) #返回x与 ...
- sudo: unable to resolve host myhostname: Connection timed out
第一种 原因,/etc/hostname 中的hostname 与/etc/hosts 里面的不对应,导致无法解析 将两个文件的hostname改成一样的即可. /etc/hostname aaa / ...
- pyqt 渲染html
from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * from PyQt5.QtWebE ...
- js获取url 参数
window.getRequest = function (url) { var theRequest = new Object(); var indexOf = url.indexOf(" ...
- java基础深入解析基本类型
一.基本类型的简介 基本类型的两条准则: Java中,如果对整数不指定类型,默认时int类型,对小数不指定类型,默认是double类型. 基本类型由小到大,可以自动转换,但是由大到小,则需要强制类型转 ...
- Python 爬虫-图片的爬取
2017-07-25 22:49:21 import requests import os url = 'https://wallpapers.wallhaven.cc/wallpapers/full ...
- hdu 2266 dfs+1258
How Many Equations Can You Find Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 ...
- 使用opatch工具 打补丁Patch 21352635 -(Database Patch Set Update 11.2.0.4.8)
Patch 21352635 - Database Patch Set Update 11.2.0.4.8 一.OPatch工具检查及升级 OPatch工具包,在安装目录$ORACLE_HOME下,P ...