您好,登錄后才能下訂單哦!
HTML DOM 定義了訪問和操作 HTML 文檔的標準方法。
DOM 以樹結構表達 HTML 文檔。
::::::::::::::::::::::::::::::::::::::::::::::::::
HTML DOM 簡介
。。。。。。。。。
什么是 DOM?
DOM 是 W3C(萬維網聯盟)的標準。
DOM 定義了訪問 HTML 和 XML 文檔的標準:
"W3C 文檔對象模型 (DOM) 是中立于平臺和語言的接口,它允許程序和腳本動態地訪問和更新文檔的內容、結構和樣式。"
W3C DOM 標準被分為 3 個不同的部分:
核心 DOM - 針對任何結構化文檔的標準模型
XML DOM - 針對 XML 文檔的標準模型
HTML DOM - 針對 HTML 文檔的標準模型
編者注:DOM 是 Document Object Model(文檔對象模型)的縮寫。
http:/ /www.iis7.com/a/lm/gjcpmcx/
。。。。。。。。。。
什么是 XML DOM?
XML DOM 定義了所有 XML 元素的對象和屬性,以及訪問它們的方法。
。。。。。。。。。。
什么是 HTML DOM?
HTML DOM 是:
HTML 的標準對象模型
HTML 的標準編程接口
W3C 標準
HTML DOM 定義了所有 HTML 元素的對象和屬性,以及訪問它們的方法。
換言之,HTML DOM 是關于如何獲取、修改、添加或刪除 HTML 元素的標準。
::::::::::::::::::::::::::::::::::::::::::::::::::::::::
HTML DOM 節點
在 HTML DOM 中,所有事物都是節點。DOM 是被視為節點樹的 HTML。
。。。。。。。。。。
DOM Nodes
DOM 節點
根據 W3C 的 HTML DOM 標準,HTML 文檔中的所有內容都是節點:
整個文檔是一個文檔節點
每個 HTML 元素是元素節點
HTML 元素內的文本是文本節點
每個 HTML 屬性是屬性節點
注釋是注釋節點
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
HTML DOM 方法
HTML DOM 方法是我們可以在節點(HTML 元素)上執行的動作。
HTML DOM 屬性是我們可以在節點(HTML 元素)設置和修改的值。
。。。。。。。。。。
編程接口
可通過 JavaScript (以及其他編程語言)對 HTML DOM 進行訪問。
所有 HTML 元素被定義為對象,而編程接口則是對象方法和對象屬性。
方法是您能夠執行的動作(比如添加或修改元素)。
屬性是您能夠獲取或設置的值(比如節點的名稱或內容)。
。。。。。。。。。。
getElementById() 方法
getElementById() 方法返回帶有指定 ID 的元素
。。。。。。。。。。
HTML DOM 對象 - 方法和屬性
一些常用的 HTML DOM 方法:
getElementById(id) - 獲取帶有指定 id 的節點(元素)
appendChild(node) - 插入新的子節點(元素)
removeChild(node) - 刪除子節點(元素)
一些常用的 HTML DOM 屬性:
innerHTML - 節點(元素)的文本值
parentNode - 節點(元素)的父節點
childNodes - 節點(元素)的子節點
attributes - 節點(元素)的屬性節點
。。。。。。。。。。。。
現實生活中的對象
某個人是一個對象。
人的方法可能是 eat(), sleep(), work(), play() 等等。
所有人都有這些方法,但會在不同時間執行它們。
一個人的屬性包括姓名、身高、體重、年齡、性別等等。
所有人都有這些屬性,但它們的值因人而異。
。。。。。。。。。。。。。
一些 DOM 對象方法
方法 描述
getElementById() 返回帶有指定 ID 的元素。
getElementsByTagName() 返回包含帶有指定標簽名稱的所有元素的節點列表(集合/節點數組)。
getElementsByClassName() 返回包含帶有指定類名的所有元素的節點列表。
appendChild() 把新的子節點添加到指定節點。
removeChild() 刪除子節點。
replaceChild() 替換子節點。
insertBefore() 在指定的子節點前面插入新的子節點。
createAttribute() 創建屬性節點。
createElement() 創建元素節點。
createTextNode() 創建文本節點。
getAttribute() 返回指定的屬性值。
setAttribute() 把指定屬性設置或修改為指定的值。
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
HTML DOM 屬性
屬性是節點(HTML 元素)的值,您能夠獲取或設置。
。。。。。。。。。。。
編程接口
可通過 JavaScript (以及其他編程語言)對 HTML DOM 進行訪問。
所有 HTML 元素被定義為對象,而編程接口則是對象方法和對象屬性。
方法是您能夠執行的動作(比如添加或修改元素)。
屬性是您能夠獲取或設置的值(比如節點的名稱或內容)。
。。。。。。。。。。。
innerHTML 屬性
獲取元素內容的最簡單方法是使用 innerHTML 屬性。
innerHTML 屬性對于獲取或替換 HTML 元素的內容很有用。
innerHTML 屬性可用于獲取或改變任意 HTML 元素,包括 <html> 和 <body>。
。。。。。。。。。。。
nodeValue 屬性
nodeValue 屬性規定節點的值。
元素節點的 nodeValue 是 undefined 或 null
文本節點的 nodeValue 是文本本身
屬性節點的 nodeValue 是屬性值
nodeName 屬性規定節點的名稱。
nodeName 是只讀的
元素節點的 nodeName 與標簽名相同
屬性節點的 nodeName 與屬性名相同
文本節點的 nodeName 始終是 #text
文檔節點的 nodeName 始終是 #document
注意: nodeName 始終包含 HTML 元素的大寫字母標簽名。
。。。。。。。。。。。。
nodeType 屬性
nodeType 屬性返回節點的類型。nodeType 是只讀的。
比較重要的節點類型有:
元素類型 NodeType
元素 1
屬性 2
文本 3
注釋 8
文檔 9
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::
HTML DOM 訪問
訪問 HTML DOM - 查找 HTML 元素。
。。。。。。。。。。
訪問 HTML 元素(節點)
訪問 HTML 元素等同于訪問節點
您能夠以不同的方式來訪問 HTML 元素:
通過使用 getElementById() 方法
通過使用 getElementsByTagName() 方法
通過使用 getElementsByClassName() 方法
。。。。。。。。。。
getElementById() 方法
getElementById() 方法返回帶有指定 ID 的元素引用:
語法:node.getElementById("id")
。。。。。。。。。。
getElementsByTagName() 方法
getElementsByTagName() 返回帶有指定標簽名的所有元素。
語法:node.getElementsByTagName("tagname")
。。。。。。。。。。
The getElementsByClassName() Method
如果您希望查找帶有相同類名的所有 HTML 元素,請使用這個方法:document.getElementsByClassName("class")
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
HTML DOM - 修改
修改 HTML = 改變元素、屬性、樣式和事件。
。。。。。。。。。。
修改 HTML 元素
修改 HTML DOM 意味著許多不同的方面:
改變 HTML 內容
改變 CSS 樣式
改變 HTML 屬性
創建新的 HTML 元素
刪除已有的 HTML 元素
改變事件(處理程序)
。。。。。。。。。。
創建 HTML 內容,改變元素內容的最簡單的方法是使用 innerHTML 屬性。
改變 HTML 樣式,通過 HTML DOM,您能夠訪問 HTML 元素的樣式對象。
創建新的 HTML 元素,如需向 HTML DOM 添加新元素,您首先必須創建該元素(元素節點),然后把它追加到已有的元素上。
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
HTML DOM - 修改 HTML 內容
通過 HTML DOM,JavaScript 能夠訪問 HTML 文檔中的每個元素。
。。。。。。。。。。
使用事件
HTML DOM 允許您在事件發生時執行代碼。
當 HTML 元素"有事情發生"時,瀏覽器就會生成事件:
在元素上點擊
加載頁面
改變輸入字段
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
HTML DOM - 元素
添加、刪除和替換 HTML 元素。
。。。。。。。。。。
創建新的 HTML 元素 - createElement(),如需向 HTML DOM 添加新元素,您首先必須創建該元素,然后把它追加到已有的元素上。
創建新的 HTML 元素 - insertBefore()
。。。。。。。。。。
刪除已有的 HTML 元素,如需刪除 HTML 元素,您必須清楚該元素的父元素
。。。。。。。。。。
能否在不引用父元素的情況下刪除某個元素?
很抱歉。DOM 需要了解您需要刪除的元素,以及它的父元素。
。。。。。。。。。。
替換 HTML 元素,如需替換 HTML DOM 中的元素,請使用 replaceChild() 方法
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
HTML DOM - 事件
HTML DOM 允許 JavaScript 對 HTML 事件作出反應。
。。。。。。。。。。。
對事件作出反應
當事件發生時,可以執行 JavaScript,比如當用戶點擊一個 HTML 元素時。
如需在用戶點擊某個元素時執行代碼,請把 JavaScript 代碼添加到 HTML 事件屬性中:onclick=JavaScript
HTML 事件的例子:
當用戶點擊鼠標時
當網頁已加載時
當圖片已加載時
當鼠標移動到元素上時
當輸入字段被改變時
當 HTML 表單被提交時
當用戶觸發按鍵時
。。。。。。。。。。。。
HTML 事件屬性
如需向 HTML 元素分配事件,您可以使用事件屬性。
。。。。。。。。。。。
onload 和 onunload 事件
當用戶進入或離開頁面時,會觸發 onload 和 onunload 事件。
onload 事件可用于檢查訪客的瀏覽器類型和版本,以便基于這些信息來加載不同版本的網頁。
onload 和 onunload 事件可用于處理 cookies。
。。。。。。。。。。。
onmouseover 和 onmouseout 事件
onmouseover 和 onmouseout 事件可用于在鼠標指針移動到或離開元素時觸發函數。
。。。。。。。。。。。
onmousedown、onmouseup 以及 onclick 事件
onmousedown、onmouseup 以及 onclick 事件是鼠標點擊的全部過程。首先當某個鼠標按鈕被點擊時,觸發 onmousedown 事件,然后,當鼠標按鈕被松開時,會觸發 onmouseup 事件,最后,當鼠標點擊完成時,觸發 onclick 事件。
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
HTML DOM 導航
通過 HTML DOM,您能夠使用節點關系在節點樹中導航。
。。。。。。。。。。。
HTML DOM 節點列表
getElementsByTagName() 方法返回節點列表。節點列表是一個節點數組。
注意:下標號從 0 開始。
。。。。。。。。。。。
HTML DOM 節點列表長度
length 屬性定義節點列表中節點的數量。
。。。。。。。。。。。
導航節點關系
您能夠使用三個節點屬性:parentNode、firstChild 以及 lastChild ,在文檔結構中進行導航。
firstChild 屬性可用于訪問元素的文本
。。。。。。。。。。。
DOM 根節點
這里有兩個特殊的屬性,可以訪問全部文檔
document.documentElement - 全部文檔
document.body - 文檔的主體
。。。。。。。。。。。
childNodes 和 nodeValue
除了 innerHTML 屬性,您也可以使用 childNodes 和 nodeValue 屬性來獲取元素的內容。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。