原文 链接
一、基本类型介绍
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类型
-
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类型
-
Text
表示文本节点,它包含的是纯文本内容,不能包含html
代码,但可以包含转义后的html
代码。Text
有下面的特性:-
nodeType
为3
-
nodeName
为#text
-
nodeValue
为文本内容 -
parentNode
是一个Element
- 没有子节点
-
1.4 Attr类型
Attr类型
-
Attr
类型表示元素的特性,相当于元素的attributes
属性中的节点,它有下面的特性:-
nodeType
值为2 -
nodeName
是特性的名称 -
nodeValue
是特性的值 -
parentNode
为null
-
1.5 Comment类型
-
Comment
表示HTML
文档中的注释,它有下面的几种特征:-
nodeType
为8 -
nodeName
为#comment
-
nodeValue
为注释的内容 -
parentNode
可能是Document
或Element
- 没有子节点
-
1.6 Document
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>
表格操作
九、样式操作
样式操作
十、大小和偏移
大小和偏移
十一、网上的一张思维导图总结
- 参考
-
JavaScript DOM
编程艺术 - 常用DOM操作
-
网友评论