众所周知,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才会得到你想要的结果!
时间: 2024-10-10 00:37:53