Element VS Node
Element:是一个通用性非常强的基类Node:是一个接口,各种类型的 DOM API 对象会从这个接口继承。DOM中的Element,Text和Comment都继承于它
换句话说:Element,Text和Comment是三种特殊的Node,它们分别叫做ELEMENT_NODE,TEXT_NODE和COMMENT_NODE
所以我们平时使用的html上的元素,即Element是类型为ELEMENT_NODE的NodeNode.nodeType可以查看节点的类型,返回数字可以查下面的表
| Name | Value |
|---|---|
ELEMENT_NODE |
1 |
ATTRIBUTE_NODE |
2 |
TEXT_NODE |
3 |
CDATA_SECTION_NODE |
4 |
ENTITY_REFERENCE_NODE |
5 |
ENTITY_NODE |
6 |
PROCESSING_INSTRUCTION_NODE |
7 |
COMMENT_NODE |
8 |
DOCUMENT_NODE |
9 |
DOCUMENT_TYPE_NODE |
10 |
DOCUMENT_FRAGMENT_NODE |
11 |
NOTATION_NODE |
12 |
NodeList VS ElementCollection
我们用childNodes找到了NodeList,但我们操作DOM时往往不想操作Node(我只想操作元素Element),那么如何获取ElementList呢?
其实我们经常使用的getElementsByXXX返回的就是一个ElementList,只不过它的真实名字是ElementCollection。
就像NodeList是Node的集合一样,ElementCollection也是Element的集合。但需要特别注意的是:
