你的位置:首页 > 网页设计

[网页设计]HTML5自定义属性之data


HTML5 增加了一项新功能是 自定义数据属性 ,也就是  data-* 自定义属性。在HTML5中我们可以使用以 data- 为前缀来设置我们需要的自定义属性,来进行一些数据的存放。当然高级浏览器下可通过脚本进行定义和数据存取。在项目实践中非常有用。

<input type="button" value="按钮" data-index="10" data-index-color="red" >

在开始之前我们先来看下之前我是如何获取自定义属性的。

 

var oBtn=document.querySelector('input');console.log(oBtn.value);    //按钮console.log(oBtn.index);    //undefinedconsole.log(oBtn.dataIndex);  //undefined

 

为什么后面2个出现的 undefined 其实也不足为奇,因为点后面跟的只允许时符合 W3C 规范,不符合的属性全被浏览器干掉了。但就是想获取自定义属性还是有办法的,代码如下:

var oBtn=document.querySelector('input');console.log(oBtn.getAttribute('value'));      //按钮console.log(oBtn.getAttribute('index'));      //10console.log(oBtn.getAttribute('data-index'));    //10

当然更改与删除分别是 ele.setAttribute(name,value) 与 ele.removeAttribute(name) ,此方法能在所有的现代浏览器中正常工作,但它不是HTML 5 的自定义 data-*属性被使用目的,不然和我们以前使用的自定义属性就没有什么区别了,我在此也就不多说了。

 

现在HTML5新增了个dataset 属性来存取 data-* 自定义属性的值。这个 dataset 属性是HTML5 JavaScript API的一部分,用来返回一个所有选择元素 data- 属性的DOMStringMap对象。使用这种方法时,不是使用完整的属性名,如 data-index 来存取数据,应该去掉data- 前缀。

还有一点特别注意的是: data- 属性名如果包含了连字符,例如:data-index-color ,连字符将被去掉,并转换为驼峰式的命名,前面的属性名转换后应该是:indexColor 。 代码如下:

<!doctype html><html><head><meta charset="utf-8"><title>dataset</title></head><body><input type="button" value="按钮" index="10" data-index="10" data-index-color="red"><script>var oBtn=document.querySelector('input');
console.log(oBtn.dataset); //DOMStringMap对象console.log(oBtn.dataset.index); //10console.log(oBtn.dataset.indexColor); //redconsole.log(oBtn.index); //undefined

console.log('name' in oBtn.dataset); //falseoBtn.dataset.name='zpf';console.log('name' in oBtn.dataset); //trueoBtn.dataset.index=100;console.log(oBtn.dataset.index); //100oBtn.index=20;console.log(oBtn.index); //20</script></body></html>
 

 

 

顺便我们在看下以上代码的控制台输出 图如下:

暑假去迪拜旅游价格迪拜旅游6天迪拜旅游费用多少迪拜旅游哪里好玩迪拜旅游行程田野绿世界游玩攻略?佛冈田野绿世界休闲农场怎么样? 龙南田野绿世界在哪里?田野绿世界具体在什么地方? 探秘根宫佛国 万元大奖征集文艺作品(组图) 田野绿世界要门票吗?佛冈田野绿世界现场门票多少钱? 2015上海梅雨季节是什么时候? 我国的梅雨季节是什么时候? 太古酒店于成都开设全新都会风尚酒店「博舍」 香港龙城大药房怎么去? 雅拉视觉摄影 成都盐市口到锦里公交路线 天涯海角门票 黎家竹筒饭 九寨沟芦苇海 天台山玩水 灵岩叠翠 九寨沟芦苇海名称的来历 MV8112 Datasheet MV8112 Datasheet MV8112A Datasheet MV8112A Datasheet MV8112A3R0 Datasheet MV8112A3R0 Datasheet 三八妇女节旅游广告 三八妇女节旅游广告 三八妇女节旅游广告 妇女旅行社 妇女旅行社 妇女旅行社 港澳旅游票 港澳旅游票 港澳旅游票