- HTML5规定可以为元素添加非标准的属性,但要添加前缀data-,目的是为元素提供与渲染无关的信息,或者提供语义信息。这些属性可以任意添加、随便命名,只要以data-开头即可。添加完自定义属性后,可以通过元素的dataset属性来访问自定义属性的值。dataset属性的值是DOMStringMap的一个实例,在这个映射中,每个data-name形式的属性都会有一个对应的属性,只不过属性名没有data-前缀(而且我在Chrome中还发现如果后面跟着大写字母会同意转成小写,再用大写去访问会出现undefined)
<!DOCTYPE html>
<html>
<head>
<title>Document</title>
</head>
<body>
<div id="myDiv" data-appId="123456" data-MYNAME="hange"></div>
<script>
var div = document.getElementById("myDiv");
var appId = div.dataset.appid;
var myname = div.dataset.myname;
alert(appId);//appId 居然是undefined
alert(myname);//输出为hangge
div.dataset.appId = "234567";
div.dataset.myname = "miaoch";
if (div.dataset.myname) {
alert(div.dataset.myname);//xiaoch
alert(div.dataset.appid);
}
</script>
</body>
</html>