什么是DOM?
通過JavaScript,您可以重構(gòu)整個(gè)HTML文檔。您可以添加、移除、改變或重排頁面上的項(xiàng)目。要改變頁面的某個(gè)東西,JavaScript就需要對HTML文檔中所有元素進(jìn)行訪問的入口。這個(gè)入口,連同對HTML 元素進(jìn)行添加、移動、改變或移除的方法和屬性,都是通過文檔對象模型來獲得的(DOM)。在 1998 年,W3C 發(fā)布了第一級的 DOM 規(guī)范。這個(gè)規(guī)范允許訪問和操作 HTML 頁面中的每一個(gè)單獨(dú)的元素。所有的瀏覽器都執(zhí)行了這個(gè)標(biāo)準(zhǔn),因此,DOM 的兼容性問題也幾乎難覓蹤影了。DOM 可被 JavaScript 用來讀取、改變 HTML、XHTML 以及 XML 文檔。
DOM 被分為不同的部分(核心、XML及HTML)和級別(DOM Level 1/2/3):
Core DOM
定義了一套標(biāo)準(zhǔn)的針對任何結(jié)構(gòu)化文檔的對象
XML DOM
定義了一套標(biāo)準(zhǔn)的針對 XML 文檔的對象
HTML DOM
定義了一套標(biāo)準(zhǔn)的針對 HTML 文檔的對象。
節(jié)點(diǎn)
根據(jù) DOM,HTML 文檔中的每個(gè)成分都是一個(gè)節(jié)點(diǎn)。
DOM 是這樣規(guī)定的:
整個(gè)文檔是一個(gè)文檔節(jié)點(diǎn)
每個(gè) HTML 標(biāo)簽是一個(gè)元素節(jié)點(diǎn)
包含在 HTML 元素中的文本是文本節(jié)點(diǎn)
每一個(gè) HTML 屬性是一個(gè)屬性節(jié)點(diǎn)
注釋屬于注釋節(jié)點(diǎn)
Node 層次
節(jié)點(diǎn)彼此都有等級關(guān)系。HTML 文檔中的所有節(jié)點(diǎn)組成了一個(gè)文檔樹(或節(jié)點(diǎn)樹)。HTML 文檔中的每個(gè)元素、屬性、文本等都代表著樹中的一個(gè)節(jié)點(diǎn)。樹起始于文檔節(jié)點(diǎn),并由此繼續(xù)伸出枝條,直到處于這棵樹最低級別的所有文本節(jié)點(diǎn)為止。
下面這個(gè)圖片表示一個(gè)文檔樹(節(jié)點(diǎn)樹):
參考鏈接:
http://blog.csdn.net/ghsau/article/details/7760826
節(jié)點(diǎn)。<title> 節(jié)點(diǎn)也有一個(gè)子節(jié)點(diǎn):文本節(jié)點(diǎn) "DOM Tutorial"。當(dāng)節(jié)點(diǎn)分享同一個(gè)父節(jié)點(diǎn)時(shí),它們就是同輩(同級節(jié)點(diǎn))。比方說,<h1> 和 <p>是同輩,因?yàn)樗鼈兊母腹?jié)點(diǎn)均是 <body> 節(jié)點(diǎn)。節(jié)點(diǎn)也可以擁有后代,后代指某個(gè)節(jié)點(diǎn)的所有子節(jié)點(diǎn),或者這些子節(jié)點(diǎn)的子節(jié)點(diǎn),以此類推。比方說,所有的文本節(jié)點(diǎn)都是 <html>節(jié)點(diǎn)的后代,而第一個(gè)文本節(jié)點(diǎn)是 <head> 節(jié)點(diǎn)的后代。節(jié)點(diǎn)也可以擁有先輩。先輩是某個(gè)節(jié)點(diǎn)的父節(jié)點(diǎn),或者父節(jié)點(diǎn)的父節(jié)點(diǎn),以此類推。比方說,所有的文本節(jié)點(diǎn)都可把 <html> 節(jié)點(diǎn)作為先輩節(jié)點(diǎn)。<span class="_kalamu-temp-placeholder"></span><p><title> 節(jié)點(diǎn)。<title> 節(jié)點(diǎn)也有一個(gè)子節(jié)點(diǎn):文本節(jié)點(diǎn) "DOM Tutorial"。當(dāng)節(jié)點(diǎn)分享同一個(gè)父節(jié)點(diǎn)時(shí),它們就是同輩(同級節(jié)點(diǎn))。比方說,<h1> 和 <p>是同輩,因?yàn)樗鼈兊母腹?jié)點(diǎn)均是 <body> 節(jié)點(diǎn)。節(jié)點(diǎn)也可以擁有后代,后代指某個(gè)節(jié)點(diǎn)的所有子節(jié)點(diǎn),或者這些子節(jié)點(diǎn)的子節(jié)點(diǎn),以此類推。比方說,所有的文本節(jié)點(diǎn)都是 <html>節(jié)點(diǎn)的后代,而第一個(gè)文本節(jié)點(diǎn)是 <head> 節(jié)點(diǎn)的后代。節(jié)點(diǎn)也可以擁有先輩。先輩是某個(gè)節(jié)點(diǎn)的父節(jié)點(diǎn),或者父節(jié)點(diǎn)的父節(jié)點(diǎn),以此類推。比方說,所有的文本節(jié)點(diǎn)都可把 <html> 節(jié)點(diǎn)作為先輩節(jié)點(diǎn)。