Node
派生自Object
,它包括Element
、Text
、Document(html)
、Coment
,假如一個 API 是Node
的,那它的子類也具有。
DOM節點
DOM的最小構成單元就是節點(node)。DOM樹就是由差別範例的節點構成。每一個節點能夠看成是DOM樹上的恭弘=叶 恭弘子。
在DOM
中,節點的範例一共有7
種Document
:全部文檔樹的頂層節點;DocumentType
:dotype
標籤(比方:<!DOCTYPE html>
)Element
:網頁的種種HTML
標籤(比方:<body>
<h>
<a>
<div>
)Attribute
:網頁元素的屬性(比方:id="id"
class="class"
type="text"
)Text
:標籤之間或標籤包括的文本Comment
:解釋DocumentFragment
:文檔片斷
Node 的接口
屬性:
DOM API 記着下面的英文單詞后各自組合就是 DOM 供應的 API
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
下一個元素,會有文本
nodeName
獵取節點稱號都是大寫,svg
是慣例,小寫nodeType
獵取節點範例,1是元素節點,3是文本節點,11是DocumentFragment
textContent
會獵取一切元素的內容,包括<script>
、style
,而innerText
不會
要領:appendChild()
增加一個子元素cloneNode()
接收參數true
,深複製,有若干複製若干;不傳參數,只複製最表面的一個contains()
示意一個元素是不是包括另一個元素hasChildNodes()
示意一個元素是不是有子元素,返回BooleaninsertBefore()
把一個元素查到另一個元素前面isEqualNode()
相稱,假如是兩個一樣的元素就是true
isSameNode()
雷同,假如是同一個元素就是true
removeChild()
移除子元素,但依舊在內存中,只是從頁面中移除replaceChild()
交流一個子元素normalize()
// 通例化
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 "
Document接口是Document特有的,window.document所相符的就是這個接口,document是html的父元素,但html照樣根元素
屬性: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()
寫一行
Elelment
屬性:innertext
用戶輸入啥就是啥innerHTML
假如用戶輸入標署名會寫入HTML
ChildNode接口
用於處置懲罰子節點(包括但不限於Element
子節點)。Element
節點、DocumentType
節點和CharacterData
接口,布置了ChildNode
接口。通常這三類節點(接口),都能夠運用下面四個要領。
(1)remove()
移除當前節點
(2)before()
, (3)after()
, (4)replaceWith()