HTML5技术

HTML5自定义属性之data-* - 缥缈飞云

字号+ 作者:H5之家 来源:博客园 2016-08-26 13:00 我要评论( )

HTML5增加了一项新功能是,也就是data-*自定义属性。在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); //undefined console.log(oBtn.dataIndex); //undefined

 

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

var oBtn=document.querySelector('input'); console.log(oBtn.getAttribute('value')); //按钮 console.log(oBtn.getAttribute('index')); //10 console.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); //true oBtn.dataset.index=100; console.log(oBtn.dataset.index); //100 oBtn.index=20; console.log(oBtn.index); //20</script></body></html>

 

 

 

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

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • html5 canvas首屏自适应背景动画循环效果代码 - 上善如水211

    html5 canvas首屏自适应背景动画循环效果代码 - 上善如水211

    2016-08-23 16:00

  • h5自定义audio(问题及解决) - we are young

    h5自定义audio(问题及解决) - we are young

    2016-08-23 11:00

  • html5 js控制音乐播放 - 裂光逝

    html5 js控制音乐播放 - 裂光逝

    2016-08-20 11:00

  • html5学习笔记5--API Range对象(二) - tuohaibei

    html5学习笔记5--API Range对象(二) - tuohaibei

    2016-08-18 15:00

网友点评