Dom 節點和 元素 有啥區別?好傢伙,我弄懂了!

2021-10-16 13:09:09 字數 2384 閱讀 6121

上已經收錄,文章的已分類,也整理了很多我的文件,和教程資料。

**文件物件模型(dom)**是乙個將html或xml文件視為樹形結構的介面,其中每個節點都是文件的乙個物件。dom還提供了一組方法來查詢樹、改變結構、樣式。

dom 還使用術語元素(element)它與節點非常相似。那麼,dom節點和元素之間有什麼區別呢?

理解節點和元素之間區別的關鍵是理解節點是什麼。

更高的角度來看,dom文件由節點層次結構組成。 每個節點可以具有父級和/或子級。

看看下面的html文件:

thank you for visiting my web page!

該文件包含以下節點層次結構:

[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-l241ebzj-1611015713496)(/img/bvcnow7)]

是文件樹中的乙個節點。它有2個子節點:

子有3個子節點的節點:注釋節點,標題掌握了dom節點的知識之後,現在該區分dom節點和元素了。

如果你了解節點術語,那麼答案是顯而易見的:元素是特定型別的節點element (node.element_node),以及文件、注釋、文字等型別。

簡而言之,元素是使用html文件中的標記編寫的節點。除了區分節點和元素之外,還需要區分只包含節點或只包含元素的dom屬性。

節點型別的以下屬性評估為乙個節點或節點集合(nodelist):

node.parentnode; // node or null

node.firstchild; // node or null

node.lastchild; // node or null

node.childnodes; // nodelist

但是,以下屬性是元素或元素集合(htmlcollection):

node.parentelement; // htmlelement or null

node.children; // htmlcollection

由於node.childnodes和node.children都返回子級列表,因此為什麼要同時具有這兩個屬性? 好問題!

考慮以下包含某些文字的段落元素:

thank youfor visiting my web page!

開啟演示,然後檢視parapgraph節點的childnodeschildren屬性:

const paragraph = document.queryselector('p');

paragraph.childnodes; // nodelist: [htmlelement, text]

paragraph.children; // htmlcollection: [htmlelement]

paragraph.childnodes集合包含2個節點:thank you,,以及for visiting my web page!文字節點!

但是,paragraph.children集合僅包含1個專案:thank you

由於paragraph.children僅包含元素,因此此處未包含文字節點,因為其型別是文字(node.text_node),而不是元素(node.element_node)。

同時擁有node.childnodesnode.children,我們可以選擇要訪問的子級集合:所有子級節點或僅子級是元素。

dom文件是節點的分層集合,每個節點可以具有父級和/或子級。如果了解節點是什麼,那麼了解dom節點和元素之間的區別就很容易。

節點有型別,元素型別就是其中之一,元素由html文件中的標記表示。

完~ 我是小智,我要去刷碗了,我們下期再見!

**部署後可能存在的bug沒法實時知道,事後為了解決這些bug,花了大量的時間進行log 除錯,這邊順便給大家推薦乙個好用的bug監控工具 fundebug。

原文:

常用的行內元素和塊級元素有哪些及區別?

1.塊級元素,寬度預設是它容器的100 各佔據一行,垂直方向排列 內聯元素,都是同一行,水平方向排列 2.塊級元素,能容納其他塊元素或者內聯元素 內聯元素,只能容納文字或其他內聯元素 3.塊級元素中height,line height以及margin和padding都可以控制 行內元素設定width...

節點物件和元素物件的區別

在看 j ascript 高階程式第3版 dom 一章的時候,對於節點一詞很疑惑,在裡面判斷節點型別的例子中 if somenode.nodetype node.element node 也就是說,如果兩者相等,則意味著 somenode 這個節點是乙個元素,那元素節點和元素是相同的概念嗎?如果是的...

id和class名獲取DOM元素的區別?

1.通過id獲取dom元素的方法 document.getelementbyid id名 2.通過class獲取dom元素的方法 document.getelementsbyclassname class名 document.getelementbyid id名 document.getelemen...