JavaScript 操作 DOM 對象

DOM

DOM(Document Object Model)譯爲文檔對象模型,是 HTML 和XML 文檔的編程接口。
HTML DOM 定義了訪問和操作 HTML 文檔的標準方法。
DOM 以樹結構表達 HTML 文檔。

什麼是 DOM?

DOM(Document Object Model) 是 W3C (World Wide Web Consortium)(萬維網聯盟)的標準。

DOM 定義了訪問 HTML 和 XML 文檔的標準:

	W3C 文檔對象模型(DOM)是中立於平臺和語言的接口,它允許程序和腳本動態
地訪問和更新文檔的內容、結構和樣式。

W3C DOM 標準被分爲 3 個不同的部分:

  • 核心 DOM - 針對任何結構化文檔的標準模型
  • XML DOM - 針對 XML 文檔的標準模型
  • HTML DOM - 針對 HTML 文檔的標準模型

什麼是 XML DOM?

XML DOM 定義了所有 XML 元素的對象和屬性,以及訪問它們的方法。

如果您需要學習 XML DOM,請訪問 XML DOM 教程

什麼是 HTML DOM?

HTML DOM 是:

  • HTML 的標準對象模型
  • HTML 的標準編程接口
  • W3C 標準

HTML DOM 定義了所有 HTML 元素的對象和屬性,以及訪問它們的方法。
換而言之,HTML DOM 是關於如何獲取、修改、添加或刪除 HTML 元素的標準。

HTML DOM 節點

DOM 節點

根據 W3C 的 HTML DOM 標準,HTML 文檔中的所有內容都是節點:

  • 整個文檔是一個文檔節點
  • 每個 HTML 元素都是元素節點
  • HTML 元素內的文本是文本節點
  • 每個 HTML 屬性是屬性節點
  • 註釋是註釋節點

HTML DOM 節點樹
在這裏插入圖片描述
節點關係

節點樹中的節點彼此擁有層級關係。
我們常用父(parent)、子(child)和同胞(sibling) 等術語來描述這些關係。父節點擁有子節點,同級的節點稱爲同胞(兄弟節點)。

  • 在節點樹中,頂端節點被稱爲根(root)。
  • 每個節點都有父節點、除了根(它沒有父節點)。
  • 一個節點可擁有任意數量的子節點。
  • 同胞是擁有相同父節點的節點。

HTML DOM 對象 - 方法和屬性

方法

HTML DOM 方法是我們可以在節點(HTML 元素)上執行的動作。

常用的 HTML DOM 方法

方 法 描 述
getElementById( ) 獲取帶有指定 id 的節點(元素)
getElementsByName( ) 返回帶有指定 name 的對象的集合
getElementsByTagName( ) 返回含有指定標籤名稱的所有元素的節點集合
getElementsByClassName( ) 返回包含帶有指定類名的所有元素的節點列表

屬性

HTML DOM 屬性是我們可以在節點(HTML 元素)設置和修改的值。

常用的節點屬性

屬性名稱 描 述
parentNode 返回節點的父節點
childNodes 返回子節點集合,childNodes[i]
firstChild 返回節點的第一個子節點,最普遍的用法是訪問該元素的文本節點
lastChild 返回節點的最後一個子節點
nextSibling 下一個同胞節點
previousSibling 上一個同胞節點

element 屬性

屬性名稱 描 述
firstElementChild 返回節點的第一個子元素
lastElementChild 返回節點的最後一個元素
nextElementSibling 下個同胞元素
previousElementSibling 上一個同胞元素

innerHTML 屬性

innerHTML 屬性用於獲取或設置任意 HTML 元素內容。

nodeName 屬性

nodeName 屬性規定節點的名稱

  • nodeName 是隻讀的
  • 元素節點的 nodeName 與標籤名相同
  • 屬性節點的 nodeName 與屬性名相同
  • 文本節點的 nodeName 始終是 #text
  • 文檔節點的 nodeName 始終是 #document

nodeValue 屬性

nodeValue 屬性規定節點的值

  • 元素節點的 nodeValue 是undefined 或 null
  • 文本節點的 nodeValue 是文本本身
  • 屬性節點的 nodeValue 是屬性值

nodeType 屬性

nodeType 屬性返回節點的類型。nodeType 只讀。

節點類型 nodeType 值
元素 element 1
屬性 attr 2
文本 text 3
註釋 comments 8
文檔 document 9

操作節點

操作節點的屬性

語法

	getAttribute("屬性名");
	setAttribute("屬性名","屬性值")

創建和插入節點

名稱 描 述
createElement(tagName) 創建一個標籤名爲tagName的新元素節點
A.appendChild(B) 把 B 節點追加至 A 節點的末尾
insertBefore(A,B) 把 A 節點插入到 B 節點之前
cloneNode(deep) 複製某個指定的節點

刪除和替換節點

名稱 描 述
removeChild(node) 刪除指定的節點
replaceChild(newNode,oldNode) 用 newNode 替換 oldNode 節點

操作節點樣式

節點屬性

語法
	HTML 元素.style.樣式屬性="值";

className屬性

語法
	HTML 元素.className="樣式名稱"

獲取元素的樣式

語法
	HTML 元素.style.樣式屬性;
	HTML 元素.currentStyle.樣式屬性;//兼容IE瀏覽器

HTML 中元素屬性

屬性 描 述
offsetLeft 返回當前元素左邊界到它上級元素的左邊界的距離,只讀屬性
offsetTop 返回當前元素上邊界到它上級元素的上邊界的距離,只讀屬性
offsetHeight 返回元素的高度
offsetWidth 返回元素的寬度
offsetParent 返回元素的偏移容器,即對最近的動態定位包含元素的引用
scrollTop 返回匹配元素的滾動條的垂直位置
scrollLeft 返回匹配元素的滾動條的水平位置
clientWidth 返回元素的可見寬度
clientHeight 返回元素的可見高度

歸納

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章