程序员

H5自定义属性及兼容处理

2017-12-07  本文已影响0人  Cherry9507

"data-"前缀

可以让所有的HTML元素都支持自定义的属性。

举个栗子:

    <h1 data-sex="girl">111</h1>

获取自定义属性(使用H5自定义属性对象Dataset来获取)

 var dataNum = document.getElementsByTagName("h1")[0].dataset.sex;
 console.log(dataNum)
//另一个方法
 var another = document.getElementsByTagName("h1")[0].getAttribute("data-sex");
 console.log(another)

请注意,dataset 属性本身可以被读取,但不能直接写入。相反,所有的写入必须是它的“属性”,这反过来表示数据属性。

自定义的data 属性名称转化成 DOMStringMap 的键值时会遵循下面的规则:

与此相反的转换,即将键值转换为一个属性的名称,会遵循下面的规则:

上面规则的约束是为了保证这两种转换是正好相反的转换。

例如,属性名称 data-abc-def 与键值 abcDef 相对应。

删除data一个属性

 var myH1 = document.getElementsByTagName("h1")[0];
 delete myH1.dataset.sex

增加一个属性

myH1.dataset.addAttr="thisOne"

兼容处理

if(myH1.dataset){
myH1.dataset.hurry= "carry";
var thevalue = myH1.dataset.hurry;
}else{
myH1.setAttribute("data-attribute","carry");
var theValue = myH1.getAttribute("data-attribute"); // 获取自定义属性
}
上一篇 下一篇

猜你喜欢

热点阅读