什麼是 DOM?
DOM 是 W3C(網際網路聯盟)的标準。
DOM 定義了通路 HTML 和 XML 文檔的标準:
“W3C 文檔對象模型 (DOM) 是中立于平台和語言的接口,它允許程式和腳本動态地通路和更新文檔的内容、結構和樣式。”
W3C DOM 标準被分為 3 個不同的部分:
核心 DOM - 針對任何結構化文檔的标準模型
XML DOM - 針對 XML 文檔的标準模型
HTML DOM - 針對 HTML 文檔的标準模型
編者注:DOM 是 Document Object Model(文檔對象模型)的縮寫。
什麼是 HTML DOM?
HTML DOM 是:
HTML 的标準對象模型
HTML 的标準程式設計接口
W3C 标準
HTML DOM 定義了所有 HTML 元素的對象和屬性,以及通路它們的方法。
換言之,HTML DOM 是關于如何擷取、修改、添加或删除 HTML 元素的标準。
在本例中:
<title>
DOM 教程
</title>
,元素節點
<title>
,包含值為 “DOM 教程” 的文本節點。
可通過節點的 innerHTML 屬性來通路文本節點的值。
HTML DOM節點
節點父、子和同胞
節點樹中的節點彼此擁有層級關系。
父(parent)、子(child)和同胞(sibling)等術語用于描述這些關系。父節點擁有子節點。同級的子節點被稱為同胞(兄弟或姐妹)。
在節點樹中,頂端節點被稱為根(root)
每個節點都有父節點、除了根(它沒有父節點)
一個節點可擁有任意數量的子
同胞是擁有相同父節點的節點
下面的圖檔展示了節點樹的一部分,以及節點之間的關系:

以下均為屬性
parentNode 屬性以 Node 對象的形式傳回指定節點的父節點。
如果指定節點沒有父節點,則傳回 null。
firstChild
lastChild
nextSibling 該節點緊跟的上一個同胞節點
previoutSibling 該節點緊跟的下一個同胞節點
HTML DOM 方法
方法是我們可以在節點(HTML 元素)上執行的動作。
HTML DOM 對象 - 方法和屬性
一些常用的 HTML DOM 方法:
getElementById(id) - 擷取帶有指定 id 的節點(元素)
appendChild(node) - 插入新的子節點(元素)
removeChild(node) - 删除子節點(元素)
一些常用的 HTML DOM 屬性:
innerHTML - 節點(元素)的文本值
parentNode - 節點(元素)的父節點
childNodes - 節點(元素)的子節點
attributes - 節點(元素)的屬性節點
insertBefore()相對于appendChild()更靈活。
replaceChild():參數
注意:兩個函數都是新節點在前。
HTML DOM 屬性
屬性是節點(HTML 元素)的值,您能夠擷取或設定。
innerHTML 屬性
擷取元素内容的最簡單方法是使用 innerHTML 屬性。
innerHTML 屬性對于擷取或替換 HTML 元素的内容很有用。
nodeName 屬性
nodeName 屬性規定節點的名稱。
- nodeName 是隻讀的
- 元素節點的 nodeName 與标簽名相同,與tagName的差別
- 屬性節點的 nodeName 與屬性名相同
- 文本節點的 nodeName 始終是 #text
- 文檔節點的 nodeName 始終是 #document
注釋:nodeName 始終包含 HTML 元素的大寫字母标簽名。
nodeValue 屬性
nodeValue 屬性規定節點的值。
- 元素節點的 nodeValue 是 undefined 或 null(筆試考)
- 文本節點的 nodeValue 是文本本身
- 屬性節點的 nodeValue 是屬性值
nodeType 屬性
nodeType 屬性傳回節點的類型。nodeType 是隻讀的。
比較重要的節點類型有: