火星葱
2016-01-26 15:27
既然nodeName,nodeValue,nodeType都是这个节点的属性,为何用getAttribute('nodeName')获取不到
你们都理解错了。。举个例子
<p name="属性名称" id="属性id" value="属性值">文本文本</p> //此处<p>是元素节点,name,id,value都是属性节点,而<p>和</p>之间的内容(文本文本)是文本节点 //<p>的nodeName是p,nodeValue是null或者undefined,nodeType是1; //name的nodeName是name,nodeValue是"属性名称",nodeType是2;同理id,value都是 //而"文本文本"的nodeName是#text,nodeValue是 文本文本,nodeType是3; getAttribute('这里是<p>节点的属性节点(例如name、id等)的名称'),返回的是此节点的value值!!
楼上在说绕口令呐。。
很简单,使用getAttribute的时候获取的是元素节点已经设定的属性的值,就像前面getAttribute的练习中,其中一个li没有设置title属性则获取的结果就是空的,它获取不到默认的属性值
nodeName,nodeValue,nodeType确实是节点属性,
但是getAttribute('nodeName')获取的是此节点的元素节点,是不同的,
举个例子<p nodeName="#text" id="ptest"></p>,这时候使用document.getElementById('ptest').getAttribute('nodeName') 才能获取到值,值为多少相信你已经懂了。
JavaScript进阶篇
468194 学习 · 21891 问题
相似问题