一、基本类型介绍
#1.1 Node类型
DOM1
级定义了一个Node
接口,该接口由DOM
中所有节点类型实现。这个Node
接口在JS
中是作为Node
类型实现的。在IE9
以下版本无法访问到这个类型,JS
中所有节点都继承自Node
类型,都共享着相同的基本属性和方法Node
有一个属性nodeType
表示Node
的类型,它是一个整数,其数值分别表示相应的Node
类型
- 假设我们要判断一个
Node
是不是元素,我们可以这样判断
if(someNode.nodeType == 1){
console.log("Node is a element");
}
- 这些
Node
类型中,我们最常用的就是element
,text
,attribute
,comment
,document
,document_fragment
这几种类型
#1.2 Element类型
-
Element
提供了对元素标签名,子节点和特性的访问,我们常用HTML
元素比如div
,span
,a
等标签就是element
中的一种。 -
Element
有下面几条特性:nodeType
为1
nodeName
为元素标签名,tagName
也是返回标签名nodeValue
为null
parentNode
可能是Document
或Element
- 子节点可能是
Element
,Text
,Comment
,Processing_Instruction
,CDATASection
或EntityReference
#1.3 Text类型
Text
表示文本节点,它包含的是纯文本内容,不能包含html
代码,但可以包含转义后的html
代码。Text
有下面的特性:nodeType
为3
nodeName
为#text
nodeValue
为文本内容parentNode
是一个Element
- 没有子节点
#1.4 Attr类型
Attr
类型表示元素的特性,相当于元素的attributes
属性中的节点,它有下面的特性:nodeType
值为2nodeName
是特性的名称nodeValue
是特性的值parentNode
为null
#1.5 Comment类型
Comment
表示HTML
文档中的注释,它有下面的几种特征:nodeType
为8nodeName
为#comment
nodeValue
为注释的内容parentNode
可能是Document
或Element
- 没有子节点
#1.6 Document
Document
表示文档,在浏览器中,document
对象是HTMLDocument
的一个实例,表示整个页面,它同时也是window
对象的一个属性。Document
有下面的特性:nodeType
为9
nodeName
为#document
nodeValue
为null
parentNode
为null
- 子节点可能是一个
DocumentType
或Element
#1.7 DocumentFragment类型
-
DocumentFragment
是所有节点中唯一一个没有对应标记的类型,它表示一种轻量级的文档,可能当作一个临时的仓库用来保存可能会添加到文档中的节点。DocumentFragment
有下面的特性:nodeType
为11
nodeName
为#document-fragment
nodeValue
为null
parentNode
为null
-
我们简单地介绍了几种常见的
Node
类型,要记住,HTML
中的节点并不只是包括元素节点,它还包括文本节点,注释节点等等。在这里我们只是简单地说明了几种常见的节点.
#二、 DOM提供的几个属性
#2.1 childNodes属性
- 在一棵节点树上,
childNodes
属性可以用来获取任何一个元素的所有子节点,它是一个包含这个元素全部子元素的数组
element.childNodes
#2.2 nodeType属性
- 节点之间的关系构成了节点层次,
html
页面的可以画出一个以html
标签为根节点的树形结构DOM
会把文档看作是一棵树,同时定义了很多方法来操作这棵数中的每一个元素(节点)
<html lang="en">
<head>
<title>Document</title>
</head>
<body>
<p>hello world!!!</p>
</body>
</html>
- 每一个节点都有
nodeType
属性