关于对js属性的测试

众所周知,DOM定义了一个Node接口(该接口由DOM中所有节点类型实现)。常见的nodeType有3种:1(元素节点)、2(属性节点)、3(文本节点)。我们可以通过获取元素来测试:

即:var oDiv=dcoument.getElementById(id); alert(oDiv.nodeType);//1
一切进行得很顺利也返回了自己想要的结果,接下来我们来看一段代码。对于刚接触不久的同学可能会范一种错误。
即:alert(oDiv.id.nodeType);又或者alert(oDiv.getAttribute(‘id‘).nodeType); //浏览器返回undefined
对js了解的人也就知道这样做错了。
正确的应该是alert(oDiv.attributes[0].nodeType);//返回2 索引0是指特性的位置
事实上oDiv.id与oDiv.getAttribute(‘id‘)返回的都是属性值而并非属性,是不是看出端倪了?
假设id="a",那么oDiv.id与oDiv.getAttribute(‘id‘)事实上就相当于"a".nodeType,但是我们真正想获取的是属性节点而不是值。所以oDiv.attributes[0].nodeType才会得到你想要的结果!

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。