HTML DOM 介紹


  本篇主要介紹DOM內容、DOM 節點、節點屬性以及獲取HTML元素的方法。

目錄

1. 介紹 DOM:介紹DOM,以及對DOM分類和功能的說明。

2. DOM 節點:介紹DOM節點分類和節點層次。

3. HTML DOM 節點屬性:介紹HTML DOM節點屬性,如:innerHTML、innerText、nodeName、nodeValue以及nodeType等。

4. 獲取 HTML 元素節點方法:介紹文檔節點(document)、元素節點可以通過getElementById、getElementsByName、getElementsByClassName以及getElementsByTagName方法獲取元素節點。

 

1. 介紹

1.1 DOM 解釋

說明:DOM全稱 Document Object Model,即文檔對象模型。將文檔抽象成一個樹型結構,文檔中的標簽、標簽屬性或標簽內容可以表示為樹上的結點。

 

1.2 DOM 分類

按照操作對象的不同,可分為Core DOM、XML DOM 和 HTML DOM。

Core Dom:核心Dom,針對任何結構化文檔的標准模型。

XML DOM:用於XML文檔的標准模型,對XML元素進行操作。

HTML DOM: 用於HTML文檔的標准模型,對HTML元素進行操作。

 

1.3 DOM 功能

① 查詢某個元素

② 查詢某個元素的祖先、兄弟以及后代元素

③ 獲取、修改元素的屬性

④ 獲取、修改元素的內容

⑤ 創建、插入和刪除元素

 

2. DOM 節點

  文檔中的所有內容都可表示為一個節點(node),如:HTML里整個文檔、每個標簽、每個標簽的屬性和文本都可作為一個節點。

2.1 節點分類

文檔節點(Document):整個XML、HTML文檔

元素節點(Element):每個XML、HTML元素

屬性節點(Attr):每個XML、HTML元素的屬性

④ 文本節點(Text):每個XML、HTML元素內的文本

注釋節點(Comment):每個注釋

注意:這里的Document節點為總稱,具體可分為XMLDocument和HTMLDocument,同理Element也可分為XMLElement和HTMLElement。

 

2.2 HTML DOM 節點層次

節點彼此都有等級關系:父節點、兄弟節點、子節點等等。

2.2.1 示例:

HTML文檔轉換為HTML DOM節點樹

 

 

2.2.2 示例圖介紹:

1) <head>元素和<body>元素的父節點為<html>元素。

2) <head>元素和<body>元素為兄弟節點。

3) <title>元素為<head>元素的子節點。

 

3. HTML DOM 節點屬性

  介紹HTML DOM節點屬性,如:innerHTML、innerText、nodeName、nodeValue以及nodeType等。

3.1 innerHTML:以HTML代碼格式獲取或設置節點的內容

說明:以HTML格式賦值給innerHTML屬性時,會以HTML的形式呈現。比如:node.innerHTML="<input type='button' value='按鈕' />" 將會顯示一個按鈕。

示例:

document.getElementById('div').innerHTML="<input type='button' value='按鈕' />"; // 設置div元素的innerHTML為一個按鈕
document.getElementById('div').innerHTML; // => <input type='button' value='按鈕' /> :以HTML格式返回節點的內容

 

3.2 innerText:獲取或設置節點的文本內容

說明:以文本字符串的形式獲取或設置節點的內容。

示例1:

賦值HTML格式內容<input type='button' value='按鈕' /> 將會以字符串顯示"<input type='button' value='按鈕' />"。

示例2:

獲取內容時,只會獲取文本內容。

document.getElementById('div').innerText; // => "文本1 文本2"

 

3.3 nodeName:獲取節點名稱,只讀屬性

說明:

節點類型 nodeName
文檔節點(Document) 返回 #document
元素節點(Element) 返回 大寫元素名稱
屬性節點(Attr) 返回 屬性名稱
文本節點(Text) 返回 #text

示例:

console.log( document.nodeName ); // => #document:文檔節點
console.log( document.body.nodeName ); // => BODY:元素節點
console.log( document.getElementById('div').nodeName ); // => DIV:元素節點
console.log( document.getElementById('div').attributes.style.nodeName ); // => style:屬性節點

  

3.4 nodeValue:獲取或設置節點的值

說明:文檔節點、元素節點此屬性返回null,並且為只讀。

節點類型 nodeValue
文檔節點(Document) 只讀,返回null
元素節點(Element) 只讀,返回null
屬性節點(Attr) 獲取或設置屬性的值
文本節點(Text) 獲取或設置文本的值

示例:

console.log( document.nodeValue ); // => null:文檔節點
console.log( document.body.nodeValue ); // => null:元素節點
console.log( document.getElementById('div').nodeValue ); // => null:元素節點
console.log( document.getElementById('div').attributes.style.nodeValue ); // => width:200px;height:100px;border:1px solid black;:style屬性的值
document.getElementById('div').attributes.style.nodeValue = ' width:200px;height:200px'; // 設置style屬性的值

 

 

3.5 nodeType:返回節點類型,只讀屬性

說明:

節點類型 nodeType
文檔節點(Document) 9
元素節點(Element) 1
屬性節點(Attr) 2
文本節點(Text) 3

示例:

console.log( document.nodeType ); // => 9:文檔節點
console.log( document.body.nodeType ); // => 1:元素節點
console.log( document.getElementById('div').nodeType ); // => 1:元素節點
console.log( document.getElementById('div').attributes.style.nodeType ); // => 2:屬性節點

 

4. 獲取 HTML 元素節點方法

  文檔節點(document)、元素節點可以通過getElementById、getElementsByName、getElementsByClassName以及getElementsByTagName方法獲取元素節點。

4.1 getElementById(id) :獲取指定ID的元素

參數:

①id {string} :元素ID。

返回值:

{HtmlElement} 元素節點對象。若沒有找到,返回null。

注意:

① HTML元素ID是區分大小寫的。

② 若沒有找到指定ID的元素,返回null。

③ 若一個父節點下面有多個相同ID元素時,默認選取第一個(而不是層級最高的)。

示例:

document.getElementById('div'); // => 獲取ID為div的元素

 

4.2 getElementsByName(name) :返回一個包含指定name名稱的的元素數組

參數:

① name {string} :name名稱。

返回值:

{Array} 符合條件的元素數組。若沒有找到符合條件的,返回空數組。

示例:

document.getElementsByName('Btn'); // 返回一個name為btn的元素數組

 

4.3 getElementsByClassName(className) :返回一個包含指定class名稱的的元素數組

參數:

① className {string} :class名稱。

返回值:

{Array} 符合條件的元素數組。若沒有找到符合條件的,返回空數組。

示例:

document.getElementsByClassName('show'); // 返回一個class包含show的元素數組

 

4.4 getElementsByTagName(elementName) :返回一個指定標簽名稱的的元素數組

參數:

① elementName {string} :標簽名稱。如:div、a等等

返回值:

{Array} 符合條件的元素數組。若沒有找到符合條件的,返回空數組。

示例:

document.getElementsByTagName('div'); // 返回一個標簽為div的元素數組

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM