1. 通過類似於 document.getElementByTagName('div')
這種方式獲取到的類數組,無法通過 forEach 進行遍歷(可以通過for循環);而通過document.querySelectorAll(div)
可以通過forEach 進行遍歷。
(1)首先看 getElementByTagName 的這種情況
網頁表現
(2)然后看 querySelectorAll 的這種情況
網頁表現
2. 通過 getElementBy** 獲取這種方式獲取到的數組是動態的;而 querySelectorAll 這種方式獲取到的是靜態的(但是如果是 querySelectorAll 獲取到的dom內部發生的變化,依舊是會動態改變的)
(1)首先我們看 getElementBy** 這種方式
網頁表現
(2)我們可以看到盡管沒有重新獲取dom,liArr還是檢測到了新加入的 li 標簽。接下來我們看一下通過 querySelectorAll 這種方式獲取到的dom列表。
網頁表現
(3)接下來,我們將一個新的標簽放到第一個li標簽的內部。
網頁表現
可以發現,通過 querySelectorAll 獲取到的dom並不是絕對靜態的,添加到這些dom內部的變化,依舊可以檢測到。