iT邦幫忙

2024 iThome 鐵人賽

DAY 21
0

Hello,大家好~歡迎再次回到JavaScript初學者成長日記!
今天來說一下HTMLCollection跟NodeList的差別,先來回想一下,在我們說到DOM的時候,我們用了document.getElementsByClassName('itemLi'),跟document.querySelectorAll('.itemLi')一次取得多個:
https://ithelp.ithome.com.tw/upload/images/20241005/20169421mcqKzN1t7M.jpg

在上圖可以發現兩種方法的結果是不相同的,一個是HTMLCollection,另一個是NodeList。
這兩個究竟有甚麼相同、相異呢?

相同處:
1、 都是集合,可以用來儲存和操作DOM
2、 都可以透過索引值得方式來取得元素

相異處:
1、 節點類型:HTMLCollection只包含元素節點(例如:、);NodeList可以包含任意類型的節點(例如:元素、本文、註解…等)
2、 動態與否:HTMLCollection隨DOM變化自動更新;NodeList可以是靜態的,也可以是動態的
3、 取得方法:HTMLCollection不支持forEach方法;NodeList支持forEach方法。
總結上述,我們將印出的結果展開看一下:
https://ithelp.ithome.com.tw/upload/images/20241005/20169421ngBFEmD7Cc.jpg

那要如何選擇使用哪一個呢?
可以說,當我們需要動態或只操作元素節點時,就用HTMLCollection,若是需要處理各種節點類型,或靜態列表時,就使用NodeList。
今天就先到這囉!明天見!


上一篇
事件
下一篇
Event Loop
系列文
JavaScript初學者成長日記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言