今天在研究一个ssh项目时发现一个问题,就是html里面自定义属性问题:
我在js中获取自定义属性是这样 $(obj).myid 来获取内容另一个id值的,然后发现在谷歌下怎么运行都是报 undefined 。拿ie试了一试,居然没有错,上网搜了一下,发现这篇文
章,共享一下。改成$(obj).getAttribute("myid")解决兼容性问题。
原文如下:
HTML标签可以自定义属性,但是我们要考虑其在IE、Firefox以及chrome下的兼容性问题。
例如:
- <div id="newTest" myAttr="getAttr"></div>
这里的“myAttr”就是这个标签的自定义属性了。
如果定义了属性却使用不了,那么这个属性就没有任何意义了,接下来就是如何去调用我们的自定义属性的值了。
在IE浏览器里,我们通过获取对象后直接调用就可以了
- document.getElementById("newTest").myAttr;
在IE浏览器里,我们同样可以对其直接赋值而动态产生一个自定义属性:
- document.getElementById("newTest").newAttr = "new";
在火狐和谷歌浏览器里,我们可以通过getAttribute方法来实现调用:
- document.getElementById("newTest").getAttribute("myAttr");
在火狐和谷歌浏览器里,我们可以通过setAttribute方法在产生并设置一个自定义属性:
- document.getElementById("newTest").setAttribute("newAttr","new");
自定义属性一般是我们用来存储数据或是相关依据的,根据实际情况,自定义属性其实很有用的。
测试浏览器:IE8,firefox 8.01,chrome 17.0.963.46 m
测试结果:能够获取到自定义属性
另外补充一点,如果不想做兼容判断,其实我们可以使用Jquery的attr方法来获取与设置自定义属性的值,目前测试结果是全兼容。
- $("#newTest").attr("myAttr");
- $("#newTest").attr("newAttr","new");