childNodes属性
在一颗节点树上,childNodes属性可以用来获取任何一个元素的所有子元素,它是一个包含这个元素全部子元素的数组:语法element.childNodes
。
由childNodes属性返回的数组包含所有类型的节点,而不仅仅是元素节点。事实上,文档几乎每一样都东西都是一个节点,甚至连空格和换行符都会被解析为节点,而它们也全都包含在childNodes属性所返回的数组当中。
nodeType属性
每一个节点都有nodeType属性。这个属性可以让我们知道自己正与哪一种节点打交道,差劲一点的是nodeType的值并不是英文。语法:node.nodeType
。
nodeType属性总共有12种可取值,但其中仅有3种具有实用价值。
- 元素节点的nodeType属性值是1.
- 属性节点的nodeType属性值是2.
- 文本节点的nodeType属性值是3.
这意味着,我们可以只对特定类型的节点进行处理。
nodeValue属性
如果想改变一个文本节点的值,那就实用DOM提供的nodeValue属性,它用来得到(和设置)一个节点的值:语法node.nodeValue
。
但用nodeValue属性获取一个节点时,得到的并不是包含在这个段落里的文本。这个调用将返回一个null值。因为<p>
元素本身的nodeValue属性是一个空值。而一个段落元素里的文本值是另一种节点,它是<p>
元素的第一个子节点。所以获取一个段落里的文本值应该为:
document.getElementById('段落元素ID').childNodes[0].nodeValue;