※ 認識DOM(一)

閱讀時間約 2 分鐘

※ DOM是什麼?

DOM 全名為 Document Object Model 中文翻譯為 文件物件模型,就是把一份 HTML 文件內的各個標籤,包括文字、圖片等等都定義成物件,而這些物件最終會形成一個樹狀結構。

就 Document Object Model 這個名字來說,其中 document 指的是瀏覽器裡的 HTML 網頁,而 object model 示意如下圖:

raw-image

說明:

  • 瀏覽器載入 HTML 以後,會進一步把 HTML 的語法結構,解析成為上圖右的物件模型。
  • 就屬性來說明:
  1. object model 和 HTML 文件的結構是一致的。
  2. 以 p 和 em 為例,在物件模型裡形成了父子階層關係。
  • 任何在網頁裡出現的內容,無論看得到或看不到的,都會被解析成為 DOM 的一部分,包含註解。
  • 當網頁變成了上圖右的物件模型以後,就可以用 JavaScript 來操作網頁元素。
  • 簡單說「DOM 是瀏覽器開放給程式語言操作網頁元素的一種介面」。

※ 樹狀結構是什麼?

樹狀結構是資料結構的一種,特色是有明確的父子階層關係,也因為階層關係明確,按相對關係查找資料特別方便。因此DOM 採用樹狀結構 (tree) 來儲存網頁元素。

raw-image

※ 樹狀結構內容

就節點在 DOM 樹中的角色和功能來說,樹狀裡每一個部分叫做「節點 (node)」,節點有四種類型:

  • 元素節點 (element node)
  • 文字節點 (text node)
  • 屬性節點 (attribute node)
  • 註解節點 (comment node)

※ 根節點:document是什麼?

在 DOM 的樹狀結構裡,根節點是 document,代表網頁的本身。

※結論:

  • Document Object Model (DOM) 是一個 API,允許程序動態操作 HTML 和 XML 文檔的內容和結構。
  • DOM是一種樹狀結構(Tree Structure)由多個節點(Node)組成。
  • 從更廣泛的層面來描述,節點(Node)分成整個文檔(Document)、元素(Element)、屬性(Attribute)和文本內容(Text)四種組成。
    全端網頁開發專業知識分享
    留言0
    查看全部
    發表第一個留言支持創作者!
    ※ 非同步概念總複習 為什麼要使用 Promise? 在 JavaScript 開發中,處理非同步操作是常見需求,涉及如文件讀寫、數據庫查詢或網路請求等耗時任務。傳統的回調方式可能導致代碼結構混亂,稱為「回調地獄」,難以維護和理解。 Promise 是解決這問題的方法。它是一個物件(objec
    認識 async/await基本概念: async 的本質是 promise 的語法糖 ,只要 function 標記為 async,就表示裡頭可以撰寫 await 的同步語法,而 await 顧名思義就是「等待」,它會確保一個 promise 物件都解決 ( resolve ) 或出錯 ( re
    什麼是 Promise.all? 在有多個 Promise 的時候,使用 Promise.all 可以確保「所有的 Promise 都執行完以後,才進入 then」。 Promise.all 語法結構: Promise.all 接受的參數是陣列形式。 什麼時候要使用 Promise.all?
    ※ Promise基本介紹 什麼是 Promise? Promise 是 JavaScript 的一個構造函式,用於創建表示非同步操作的物件實例。使用 new Promise() 時,你會創建一個包含非同步操作的實例,這個實例可以透過其繼承的方法如 then(), catch(), 和 fina
    ※ 同步概念: 單純地「由上而下」執行程式碼,而且一次只執行一件事,也就是「按順序執行,一個動作結束才能切換到下一個」。缺點是你需要「等待」事情執行完畢,才能繼續往下走。 ※ 非同步概念: 盡可能讓主要的執行程序不需要停下來等待,若遇到要等待的事情,就發起一個「非同步處理」,讓主程序繼續執行,
    ※ 函式進階介紹: 箭頭函式: 箭頭函式相比於一般函式,語法相當簡潔。除了少去 function 關鍵字,如果只有一個參數,箭頭函式可以省略括號;只有一行程式碼,就是直接簡單返回一個變數或簡單的表達式,可以省略大括號和 return。例子如下: //一般函式計算平方用的寫法 const squ
    ※ 非同步概念總複習 為什麼要使用 Promise? 在 JavaScript 開發中,處理非同步操作是常見需求,涉及如文件讀寫、數據庫查詢或網路請求等耗時任務。傳統的回調方式可能導致代碼結構混亂,稱為「回調地獄」,難以維護和理解。 Promise 是解決這問題的方法。它是一個物件(objec
    認識 async/await基本概念: async 的本質是 promise 的語法糖 ,只要 function 標記為 async,就表示裡頭可以撰寫 await 的同步語法,而 await 顧名思義就是「等待」,它會確保一個 promise 物件都解決 ( resolve ) 或出錯 ( re
    什麼是 Promise.all? 在有多個 Promise 的時候,使用 Promise.all 可以確保「所有的 Promise 都執行完以後,才進入 then」。 Promise.all 語法結構: Promise.all 接受的參數是陣列形式。 什麼時候要使用 Promise.all?
    ※ Promise基本介紹 什麼是 Promise? Promise 是 JavaScript 的一個構造函式,用於創建表示非同步操作的物件實例。使用 new Promise() 時,你會創建一個包含非同步操作的實例,這個實例可以透過其繼承的方法如 then(), catch(), 和 fina
    ※ 同步概念: 單純地「由上而下」執行程式碼,而且一次只執行一件事,也就是「按順序執行,一個動作結束才能切換到下一個」。缺點是你需要「等待」事情執行完畢,才能繼續往下走。 ※ 非同步概念: 盡可能讓主要的執行程序不需要停下來等待,若遇到要等待的事情,就發起一個「非同步處理」,讓主程序繼續執行,
    ※ 函式進階介紹: 箭頭函式: 箭頭函式相比於一般函式,語法相當簡潔。除了少去 function 關鍵字,如果只有一個參數,箭頭函式可以省略括號;只有一行程式碼,就是直接簡單返回一個變數或簡單的表達式,可以省略大括號和 return。例子如下: //一般函式計算平方用的寫法 const squ
    你可能也想看
    Google News 追蹤
    Thumbnail
    這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
    Thumbnail
    美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
    Thumbnail
    Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
    Thumbnail
    在南管之鄉、在南管世家成長的王心心說,她睜眼、閉眼間,盡是悠悠南管在耳邊響起。
    Thumbnail
    托凱 (Tokaj) 產區位於匈牙利的東北方和斯洛伐克 (Slovakia) 的交界處,喀爾巴阡山脈 (Carpathian Mountains) 的山腳下,是世界最為知名的貴腐甜白酒產區之一,這邊產的葡萄酒稱為托卡伊 (Tokaji)。不過近年來,晚摘酒和不甜的酒款也越來越受到歡迎。
    Thumbnail
    加州大部分的葡萄酒都產自位於內陸的農業經濟重心的中央谷地,土壤肥沃,透過引水灌溉來提高產量。比較優質的葡萄酒則大多來自於加州沿岸,因為受到洋流的影響,氣候比較冷涼,需要花比較多的心思照顧葡萄園。加州主要的葡萄園可以畫分成五個區域,大部分的 AVA 來自於其中的三個區域:北海岸、中部海岸,與中央谷地。
    Thumbnail
    【起司很有事】專題近期開設一的新的欄目:〔起司美味〕這個單元,是介紹一些餐廳起司入菜的菜品,藉由他們創意美味,認識一款起司,大家也可嘗試他們的作品認識一款起司另一種風味。 起司加握壽司等於毛球?這是什麼鬼呀?
    Thumbnail
    最近台灣正值一波「呼吸道融合病毒」的大流行,有不少兩歲以下的孩童感染了呼吸道融合病毒,而染上急性細支氣管炎而必須住院治療,嚴重一點的孩童甚至喘到需要住到加護病房,接受呼吸器的支持。今天要為大家簡介急性細支氣管的症狀、嚴重度的區分及相應的治療方法,並告訴家長如何避免孩童得到急性細支氣管炎......
    Thumbnail
    「Is it just me, or is it getting crazier out there?」—《JOKER》 小丑在笑,不代表開心;莫梭沒哭,不代表無情,但因為不符合社會期待,被視作異類。然而,透過卡繆的筆,我們可以窺探莫梭的內心,得以比較出外在世界多麽荒謬。
    Thumbnail
    這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
    Thumbnail
    美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
    Thumbnail
    Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
    Thumbnail
    在南管之鄉、在南管世家成長的王心心說,她睜眼、閉眼間,盡是悠悠南管在耳邊響起。
    Thumbnail
    托凱 (Tokaj) 產區位於匈牙利的東北方和斯洛伐克 (Slovakia) 的交界處,喀爾巴阡山脈 (Carpathian Mountains) 的山腳下,是世界最為知名的貴腐甜白酒產區之一,這邊產的葡萄酒稱為托卡伊 (Tokaji)。不過近年來,晚摘酒和不甜的酒款也越來越受到歡迎。
    Thumbnail
    加州大部分的葡萄酒都產自位於內陸的農業經濟重心的中央谷地,土壤肥沃,透過引水灌溉來提高產量。比較優質的葡萄酒則大多來自於加州沿岸,因為受到洋流的影響,氣候比較冷涼,需要花比較多的心思照顧葡萄園。加州主要的葡萄園可以畫分成五個區域,大部分的 AVA 來自於其中的三個區域:北海岸、中部海岸,與中央谷地。
    Thumbnail
    【起司很有事】專題近期開設一的新的欄目:〔起司美味〕這個單元,是介紹一些餐廳起司入菜的菜品,藉由他們創意美味,認識一款起司,大家也可嘗試他們的作品認識一款起司另一種風味。 起司加握壽司等於毛球?這是什麼鬼呀?
    Thumbnail
    最近台灣正值一波「呼吸道融合病毒」的大流行,有不少兩歲以下的孩童感染了呼吸道融合病毒,而染上急性細支氣管炎而必須住院治療,嚴重一點的孩童甚至喘到需要住到加護病房,接受呼吸器的支持。今天要為大家簡介急性細支氣管的症狀、嚴重度的區分及相應的治療方法,並告訴家長如何避免孩童得到急性細支氣管炎......
    Thumbnail
    「Is it just me, or is it getting crazier out there?」—《JOKER》 小丑在笑,不代表開心;莫梭沒哭,不代表無情,但因為不符合社會期待,被視作異類。然而,透過卡繆的筆,我們可以窺探莫梭的內心,得以比較出外在世界多麽荒謬。