前端

HTML标签自定义属性

2015年2月7日

HTML标签可以自定义属性,但是我们要考虑其在IE、Firefox以及chrome下的兼容性问题。
例如:

  1. <div id=”newTest” myAttr=”getAttr”></div>

复制代码

这里的“myAttr”就是这个标签的自定义属性了。

如果定义了属性却使用不了,那么这个属性就没有任何意义了,接下来就是如何去调用我们的自定义属性的值了。

在IE浏览器里,我们通过获取对象后直接调用就可以了

  1. document.getElementById(“newTest”).myAttr;

复制代码

在IE浏览器里,我们同样可以对其直接赋值而动态产生一个自定义属性:

  1. document.getElementById(“newTest”).newAttr = “new”;

复制代码

在火狐和谷歌浏览器里,我们可以通过getAttribute方法来实现调用:

  1. document.getElementById(“newTest”).getAttribute(“myAttr”);

复制代码

在火狐和谷歌浏览器里,我们可以通过setAttribute方法在产生并设置一个自定义属性:

  1. document.getElementById(“newTest”).setAttribute(“newAttr”,”new”);

复制代码

自定义属性一般是我们用来存储数据或是相关依据的,根据实际情况,自定义属性其实很有用的。

测试浏览器:IE8,firefox 8.01,chrome 17.0.963.46 m
测试结果:能够获取到自定义属性

另外补充一点,如果不想做兼容判断,其实我们可以使用Jquery的attr方法来获取与设置自定义属性的值,目前测试结果是全兼容。

  1. $(“#newTest”).attr(“myAttr”);
  2. $(“#newTest”).attr(“newAttr”,”new”);
<————————————–分割线—————————————————->
15.7.9
其实 HTML5对自定义属性提供了字自己的api   dataset对象。
譬如,这个div元素,可以使用dataset直接获取自定义属性的值
<div id=”oDiv” data-width=”100″></div>
var a= document.getElementById(“oDiv”);
alert(a.dataset.width);
a.dataset.width的值是100,获取到了自定义属性的值。
按照HTML5的规范,html元素的自定义属性要以data-开头,也可以看出dataset对象获取自定义属性时是根据data-后边的字符串来获取的。
同时,毕竟HTML5在各个浏览器的实现程度还不太行,支持dataset对象的有chrome,firefox6+,IE11

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注