摘要:簡(jiǎn)單來說,節(jié)點(diǎn)作為樹結(jié)構(gòu)中的連接點(diǎn),最終構(gòu)成了完整的樹結(jié)構(gòu)。節(jié)點(diǎn)樹結(jié)構(gòu)通過節(jié)點(diǎn)概念,我們可以將原本的樹結(jié)構(gòu)改成節(jié)點(diǎn)樹結(jié)構(gòu)進(jìn)行表示。節(jié)點(diǎn)之間的關(guān)系中的表示模型,也可以用來表示節(jié)點(diǎn)樹結(jié)構(gòu)中節(jié)點(diǎn)之間的關(guān)系。值得注意的是和元素并不是兄弟關(guān)系。
DOM 樹結(jié)構(gòu)
DOM 之所以可以訪問和更新 HTML 頁(yè)面中的內(nèi)容、結(jié)構(gòu)和樣式,是因?yàn)?DOM 將 HTML 頁(yè)面解析為一個(gè) 樹結(jié)構(gòu)。
例如下面這段代碼是一個(gè)簡(jiǎn)單的 HTML 頁(yè)面源代碼:
示例頁(yè)面 這是一個(gè)示例頁(yè)面
這是一個(gè)段落內(nèi)容.
將上面的 HTML 頁(yè)面繪制成 DOM 樹結(jié)構(gòu),如下效果:
通過上面的 DOM 樹結(jié)構(gòu),我們可以看到,Document 對(duì)象是作為 DOM 樹結(jié)構(gòu)的入口。再根據(jù) DOM 樹結(jié)構(gòu)的特點(diǎn),我們就可以定位到 HTML 頁(yè)面中任意一個(gè)元素、屬性或文本內(nèi)容。
瀏覽器加載并運(yùn)行 HTML 頁(yè)面時(shí),會(huì)創(chuàng)建 DOM 樹結(jié)構(gòu)這個(gè)模型。并且 DOM 樹結(jié)構(gòu)模型會(huì)被存儲(chǔ)在瀏覽器的內(nèi)存中。
什么是節(jié)點(diǎn)當(dāng) HTML 頁(yè)面內(nèi)容過于龐大和復(fù)雜時(shí),生成的 DOM 樹結(jié)構(gòu)就越復(fù)雜。進(jìn)而,瀏覽器加載 HTML 頁(yè)面的耗時(shí)就越長(zhǎng)。
節(jié)點(diǎn)(Node)原本是網(wǎng)絡(luò)術(shù)語(yǔ),表示網(wǎng)絡(luò)中的連接點(diǎn)。一個(gè)網(wǎng)絡(luò)是由一些節(jié)點(diǎn)構(gòu)成的集合。
在 DOM 樹結(jié)構(gòu)中,節(jié)點(diǎn)也是很重要的一個(gè)概念。簡(jiǎn)單來說,節(jié)點(diǎn)作為 DOM 樹結(jié)構(gòu)中的連接點(diǎn),最終構(gòu)成了完整的 DOM 樹結(jié)構(gòu)。
DOM 樹結(jié)構(gòu)中的節(jié)點(diǎn)在 DOM 樹結(jié)構(gòu)中,主要由以下 4 種節(jié)點(diǎn)組成:
節(jié)點(diǎn)名稱 | 含義 | 描述 |
---|---|---|
文檔節(jié)點(diǎn) | 表示整個(gè) HTML 頁(yè)面(相當(dāng)于 document 對(duì)象) | 當(dāng)需要訪問任何標(biāo)簽、屬性或文本時(shí),都可以通過文檔節(jié)點(diǎn)進(jìn)行導(dǎo)航 |
元素節(jié)點(diǎn) | 表示 HTML 頁(yè)面中的標(biāo)簽(即 HTML 頁(yè)面的結(jié)構(gòu)) | 當(dāng)訪問 DOM 樹時(shí),需要從查找元素節(jié)點(diǎn)開始 |
屬性節(jié)點(diǎn) | 表示 HTML 頁(yè)面中的開始標(biāo)簽包含的屬性 | |
文本節(jié)點(diǎn) | 表示 HTML 頁(yè)面中的標(biāo)簽所包含的文本內(nèi)容 |
除了上面 4 種常見的節(jié)點(diǎn)類型以外,DOM 樹結(jié)構(gòu)中還具有很多節(jié)點(diǎn)類型。
DOM 節(jié)點(diǎn)樹結(jié)構(gòu)還有一些節(jié)點(diǎn)類型,目前已被廢棄(不再使用)。
通過節(jié)點(diǎn)概念,我們可以將原本的 DOM 樹結(jié)構(gòu)改成 DOM 節(jié)點(diǎn)樹結(jié)構(gòu)進(jìn)行表示。
在 DOM 的標(biāo)準(zhǔn)規(guī)范中,提供了 Node 對(duì)象。該對(duì)象主要依靠 DOM 節(jié)點(diǎn)樹結(jié)構(gòu)中的常見 4 種節(jié)點(diǎn)類型,來訪問和更新 HTML 頁(yè)面中的內(nèi)容。
節(jié)點(diǎn)之間的關(guān)系關(guān)于 Node 對(duì)象,我們會(huì)在后面的章節(jié)中學(xué)習(xí)。
DOM 中的 M 表示 Model(模型),也可以用來表示 DOM 節(jié)點(diǎn)樹結(jié)構(gòu)中節(jié)點(diǎn)之間的關(guān)系。
在 DOM 節(jié)點(diǎn)樹結(jié)構(gòu)中,主要具有以下三層關(guān)系。
父級(jí)與子級(jí)如果我們將 HTML 頁(yè)面中某一個(gè)元素作為父級(jí)的話,那包含在該元素內(nèi)的第一層所有元素都可以稱為該元素的子級(jí)。
例如,我們來看一下下面這個(gè) DOM 節(jié)點(diǎn)樹結(jié)構(gòu):
在上面的 DOM 節(jié)點(diǎn)樹結(jié)構(gòu)中, 元素作為父級(jí), 和 元素作為子級(jí)。
祖先與后代如果我們將 HTML 頁(yè)面中某一個(gè)元素作為祖先的話,那包含在該元素內(nèi)的所有元素(除子級(jí)之外的)都可以稱為該元素的后代。
例如,我們來看一下下面這個(gè) DOM 節(jié)點(diǎn)樹結(jié)構(gòu):
在上面的 DOM 節(jié)點(diǎn)樹結(jié)構(gòu)中, 元素作為祖先,、
元素作為后代。
兄弟關(guān)系具有相同父級(jí)元素的兩個(gè)或幾個(gè)元素之間就是兄弟關(guān)系。例如,我們來看一下下面這個(gè) DOM 節(jié)點(diǎn)樹結(jié)構(gòu):
在上面的 DOM 節(jié)點(diǎn)樹結(jié)構(gòu)中, 和
值得注意的是:
和 元素并不是兄弟關(guān)系。因?yàn)樗鼈兊母讣?jí)元素并不是相同元素。
DOM 訪問和更新 HTML 頁(yè)面中的內(nèi)容,主要依靠 DOM 節(jié)點(diǎn)樹結(jié)構(gòu)中這三種節(jié)點(diǎn)關(guān)系完成。
本教程免費(fèi)開源,任何人都可以免費(fèi)學(xué)習(xí)、分享,甚至可以進(jìn)行修改。但需要注明作者及來源,并且不能用于商業(yè)。
本教程采用知識(shí)共享署名-非商業(yè)性使用-禁止演繹 4.0 國(guó)際許可協(xié)議進(jìn)行許可。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/83914.html
摘要:元素之間的關(guān)系在元素樹結(jié)構(gòu)中,主要具有以下三層關(guān)系。祖先與后代如果我們將頁(yè)面中某一個(gè)元素作為祖先的話,那包含在該元素內(nèi)的所有元素除子級(jí)之外的都可以稱為該元素的后代。兄弟關(guān)系具有相同父級(jí)元素的兩個(gè)或幾個(gè)元素之間就是兄弟關(guān)系。 DOM 元素樹結(jié)構(gòu)與 DOM 節(jié)點(diǎn)樹結(jié)構(gòu)很相似,區(qū)別僅在于是利用節(jié)點(diǎn)解析 HTML 元素,還是利用元素解析 HTML 元素。 DOM 樹結(jié)構(gòu) 還記得下面這張圖嗎? ...
摘要:對(duì)象的作用樹結(jié)構(gòu)主要是依靠節(jié)點(diǎn)進(jìn)行解析,稱為節(jié)點(diǎn)樹結(jié)構(gòu)。對(duì)象的繼承鏈關(guān)系對(duì)象是繼承于對(duì)象的,是一個(gè)用于接收事件的對(duì)象。但需要注明作者及來源,并且不能用于商業(yè)。本教程采用知識(shí)共享署名非商業(yè)性使用禁止演繹國(guó)際許可協(xié)議進(jìn)行許可。 DOM 的標(biāo)準(zhǔn)規(guī)范中提供了 Node 對(duì)象,該對(duì)象主要提供了用于解析 DOM 節(jié)點(diǎn)樹結(jié)構(gòu)的屬性和方法。 Node 對(duì)象的作用 DOM 樹結(jié)構(gòu)主要是依靠節(jié)點(diǎn)進(jìn)行解析,...
摘要:而標(biāo)準(zhǔn)規(guī)范中提供了對(duì)象,主要是依靠元素樹結(jié)構(gòu)訪問和更新頁(yè)面的內(nèi)容。值得注意的是所有的頁(yè)面的元素都是對(duì)象,而這個(gè)對(duì)象又是繼承于對(duì)象的。我們可以簡(jiǎn)單地理解對(duì)象是對(duì)象的補(bǔ)充。本教程采用知識(shí)共享署名非商業(yè)性使用禁止演繹國(guó)際許可協(xié)議進(jìn)行許可。 DOM 的標(biāo)準(zhǔn)規(guī)范中提供了 Element 對(duì)象,該對(duì)象提供了 HTML 頁(yè)面中所有元素所具有的屬性和方法。 我們都知道 DOM 標(biāo)準(zhǔn)規(guī)范中提供了 Nod...
摘要:系列教程是一套免費(fèi)開源,任何人都可以免費(fèi)學(xué)習(xí)分享,甚至可以進(jìn)行修改。本文是這套系列教程的索引也就是目錄第一回介紹在最開始,我們先來了解是什么的作用,以及瀏覽器的支持是怎么樣的。 《EASYDOM》系列教程是一套免費(fèi)、開源,任何人都可以免費(fèi)學(xué)習(xí)、分享,甚至可以進(jìn)行修改。但需要注明作者及來源,并且不能用于商業(yè)。 本文是這套系列教程的索引(也就是目錄): 第一回 DOM 介紹 在最開始,我...
摘要:對(duì)象提供了一系列的屬性和方法用來利用節(jié)點(diǎn)樹結(jié)構(gòu)中節(jié)點(diǎn)的關(guān)系實(shí)現(xiàn)遍歷其中的節(jié)點(diǎn)。在上述語(yǔ)法結(jié)構(gòu)中,屬性返回指定節(jié)點(diǎn)的父元素節(jié)點(diǎn)。該屬性獲取一個(gè)包含指定節(jié)點(diǎn)的所有子節(jié)點(diǎn)的集合。值得注意的是及之前版本的瀏覽器中不存在空白節(jié)點(diǎn)問題。 Node 對(duì)象提供了一系列的屬性和方法用來利用 DOM 節(jié)點(diǎn)樹結(jié)構(gòu)中節(jié)點(diǎn)的關(guān)系實(shí)現(xiàn)遍歷其中的節(jié)點(diǎn)。 關(guān)于節(jié)點(diǎn)之間的關(guān)系,可以參考《DOM樹結(jié)構(gòu)》一節(jié)有關(guān)節(jié)點(diǎn)之間關(guān)...
閱讀 3576·2023-04-25 14:20
閱讀 1203·2021-09-10 10:51
閱讀 1157·2019-08-30 15:53
閱讀 466·2019-08-30 15:43
閱讀 2320·2019-08-30 14:13
閱讀 2798·2019-08-30 12:45
閱讀 1209·2019-08-29 16:18
閱讀 1169·2019-08-29 16:12