當前位置:
首頁 > 最新 > 淺析Node與Element

淺析Node與Element

Node類繼承於EventTarget,下面是MDN給的解釋。

Node在這兒指DOM節點,其中包括了我們最常見的元素節點,比如 div/p/span 之類的。除此之外還包括了 Document/Comment 之類的節點。

一個節點的類型,可以通過其 類型查看到,具體的類型則可以看下圖:

高頻的屬性與方法

Node定義了一些經典的節點操作方法,我這兒畫了個簡單的圖,並沒有列出全部屬性

寫前端的同學,日常應該都會頻繁的用到這些方法。

當然,也有可能會遇到踩坑的現象。比如說在使用 完成遍歷操作的時候, 有可能會返回的是文本節點而非元素節點,那麼在調用一些元素節點的屬性或方法時(如 ),就會出錯。這也是為什麼一定要區分清楚兩種節點的原因。

Element

至於說Element, 大家肯定就熟悉多了。學前端入門的時候,就用過的 的 Api,取出來的就是Element。

Element在MDN的解釋如下:

這個其實大家日常的使用也非常多,就不多做解釋了。

Node與Element的關係

至於Node與Element的關係,從繼承方面講可能為清晰很多。

Element 繼承於 Node,具有Node的方法,同時又拓展了很多自己的特有方法。

所以在Element的一些方法里,是明確區分了Node和Element的,比如說: , , , 等方法。

而Node的一些方法,返回值為Node,比如說文本節點,注釋節點之類的,而Element的一些方法,返回值則一定是Element。

區分清楚這點了,也能避免很多低級問題。

如何給所有DOM元素添加方法

由於JavaScript原型的特點,我們只要給原型添加方法,就可以在所有繼承的子元素中調用此方法。

當然,在這兒你選擇污染Element的原型也好,Node的原型也罷,都是可行的。

具體看你要調用這個方法的元素,是純元素節點還是會有別的一些節點。

按需取用就行。

DEMO:

總結:

Node是節點,其中包含不同類型的節點,Element只是Node節點的一種。

Element繼承與Node,可以調用Node的方法。

給所有DOM元素添加方法,只需要污染Node或者Element的原型鏈就行。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 推酷 的精彩文章:

重回中國市場的挪威三文魚,想要這樣拉攏吃貨們
讀Zepto源碼之屬性操作
新加坡企業網路營銷競爭性高於香港3倍
用上古思想寫現代前端
ECMAScript 2018 標準導讀

TAG:推酷 |

您可能感興趣

Oracle 資料庫中enq:TX-index contention等待時間淺析
SQL Server中LIKE %search_string% 索引查找(Index Seek)淺析
淺析Sentinel Protocol:區塊鏈資產的守護者
淺析requests庫響應對象的text和content屬性
推薦 淺析兩代MobileNet
淺析minecraft我的世界
乾貨分享!CynosDB for PostgreSQL 架構淺析
深入淺析一致性模型之Linearizability
【Listing】淺析Listing的整體排布思路
Federico Pezzotta淺析全球碧璽資源及其應用
淺析來自王嘉爾的[OkayMusicVideo]
淺析Wker_Xsser使用
淺析Jacklove、iBoy、Smlz,誰成為下一個Uzi
ChinaJoy是什麼?淺析:ChinaJoy的歷史
Ubuntu 下面 MySQL 的參數文件 my.cnf 淺析
一文淺析NVMe over Fabric技術發展簡史
淺析上半年AMD和Intel誰更yes
Warframe-戰甲篇-MAG淺析
淺析PureStorage業界首款AI存儲系統AIRI
Android AIDL淺析及非同步使用