Node
派生自Object
,它包括Element
、Text
、Document(html)
、Coment
,若是一个 API 是Node
的,那它的子类也拥有。html
DOM的最小组成单位就是节点(node)。DOM树就是由不一样类型的节点组成。每一个节点能够当作是DOM树上的叶子。node
在DOM
中,节点的类型一共有7
种Document
:整个文档树的顶层节点;DocumentType
:dotype
标签(好比:<!DOCTYPE html>
)Element
:网页的各类HTML
标签(好比:<body>
<h>
<a>
<div>
)Attribute
:网页元素的属性(好比:id="id"
class="class"
type="text"
)Text
:标签之间或标签包含的文本Comment
:注释DocumentFragment
:文档片断数组
属性:
DOM API 记住下面的英文单词后各自组合就是 DOM 提供的 APIapp
child/children/parent node first/last next/previous sibling/siblings type value/text/content inner/outer element
innerText
添加文本,会覆盖原有文本childNodes
获取全部的子元素(会获取到回车)children
获取全部的子标签,没有文本firstChild
第一个元素,会有文本lastChild
最后一个元素,会有文本firstElementChild
,第一个标签,没有文本previousSibling
上一个元素,会有文本nextSibling
下一个元素,会有文本previousElementSibling
下一个标签,没有文本nextSibling
下一个元素,会有文本dom
nodeName
获取节点名称都是大写,svg
是特例,小写nodeType
获取节点类型,1是元素节点,3是文本节点,11是DocumentFragment编辑器
textContent
会获取全部元素的内容,包括<script>
、style
,而innerText
不会svg
方法:appendChild()
添加一个子元素cloneNode()
接受参数true
,深复制,有多少复制多少;不传参数,只复制最外面的一个contains()
表示一个元素是否包含另外一个元素hasChildNodes()
表示一个元素是否有子元素,返回BooleaninsertBefore()
把一个元素查到另外一个元素前面isEqualNode()
相等,若是是两个同样的元素就是true
isSameNode()
相同,若是是同一个元素就是true
removeChild()
移除子元素,但依然在内存中,只是从页面中移除replaceChild()
交换一个子元素normalize()
// 常规化this
var wrapper = document.createElement("div"); wrapper.appendChild( document.createTextNode("Part 1 ") ); wrapper.appendChild( document.createTextNode("Part 2 ") ); // At this point, wrapper.childNodes.length === 2 // wrapper.childNodes[0].textContent === "Part 1 " // wrapper.childNodes[1].textContent === "Part 2 " wrapper.normalize(); // Now, wrapper.childNodes.length === 1 // wrapper.childNodes[0].textContent === "Part 1 Part 2 "
属性:body
获取body
元素characterSet
获取字符编码childElementCount
子标签的数量,无符号长整型数字children
doctype
documentElement
html元素domain
fullscreen
head
hidden
images
links
location
onxxxxxxxxx
origin
plugins
检测插件readyState
referrer
引荐scripts
scrollingElement
获取正在滚动的元素styleSheets
title
visibilityState
页面是否被显示,正在看页面,返回true
编码
方法:close()
关闭文档createDocumentFragment()
createElement()
createTextNode()
建立一个文本节点execCommand()
写一个富文本编辑器时能够用到exitFullscreen()
退出全屏getElementById()
getElementsByClassName()
getElementsByName()
经过name属性getElementsByTagName()
经过标签名getSelection()
回去用户选中的文本hasFocus()
用户是否Focus到上面open()
querySelector()
经过选择器获取,返回一个选择器(数组的形式,不过是伪数组)querySelectorAll()
经过选择器获取,返回因此选择器(数组的形式,不过是伪数组)write()
写writeln()
写一行插件
属性:innertext
用户输入啥就是啥innerHTML
若是用户输入标签名会写入HTML
用于处理子节点(包含但不限于Element
子节点)。Element
节点、DocumentType
节点和CharacterData
接口,部署了ChildNode
接口。凡是这三类节点(接口),均可以使用下面四个方法。
(1)remove()
移除当前节点
(2)before()
, (3)after()
, (4)replaceWith()