iT邦幫忙

0

DOM 是什麼 ? 先了解 Node & HTMLElement 就知道了

面試的時候很常會被問到 DOM 是什麼?
那 Node 和 HTMLElement 又是什麼呢?

DOM(Document Object Model) 是由多個 DOM Node 物件節點所組成的文件(樹)物件模型。

https://ithelp.ithome.com.tw/upload/images/20220112/20144231yAEcWH4pTG.png

DOM Node

圖片中第一個區塊是我們寫的 HTML 語法,下面的區塊是轉成節點的樣子。
DOM document 包含很多節點:
<html> 是一個 node 節點,包含2個子節點:

  • head
  • body

<body> 也是一個 node 節點,有1個父節點 html,包含3個子節點:

  • 註解 <!-- Page Body -->
  • 標題 <h2>
  • 段落 <p>

<p> 本身是 node 節點,包含1個子節點:

  • 文字節點 "Thank you for visiting my web page!"

DOM Node Types

從上述了解 DOM Nodes 的過程中,可以得知 Node 有很多種型態,html、body、註解、文字...等,各個型態都是一個節點。

  • Node.ELEMENT_NODE
  • Node.ATTRIBUTE_NODE
  • Node.TEXT_NODE
  • Node.CDATA_SECTION_NODE
  • Node.PROCESSING_INSTRUCTION_NODE
  • Node.COMMENT_NODE
  • Node.DOCUMENT_NODE
  • Node.DOCUMENT_TYPE_NODE
  • Node.DOCUMENT_FRAGMENT_NODE
  • Node.NOTATION_NODE

DOM Element

而 DOM Element 是 node(Node.ELEMENT_NODE) 其中一個型態,也就是常用到的 HTML tags,像是<html> <body> <h2> <p>...等。

  • <p> 同時是 DOM Node,也是 HTML Element
  • <!-- Page Body --> 是 DOM Node,但不是 HTML Element

總結

Nodes 節點有很多種型態,DOM Element 是 Node 其中一種型態,而 DOM 表示整個節點和元素組成的樹狀結構。

參考來源:
https://dmitripavlutin.com/dom-node-element/
https://iter01.com/233214.html


尚未有邦友留言

立即登入留言