1. querySelectorAll(name)
返回一個 NodeList
表示元素的列表(類數組對象),把當前的元素作爲根與指定的選擇器組相匹配。
2. getElementsByClassName(name)
返回一個包含了所有指定類名的子元素的類數組對象(HTMLCollection
)。當在document
對象上調用時,會搜索整個DOM
文檔,包含根節點。
比較點:
結果
querySelectorAll
返回的是靜態結果,不會隨文檔變化而變化。getElementsByClassName
返回的是動態結果,會及時更新文檔的變化。參數
name
:
querySelectorAll
的name
由逗號連接的包含一個或多個CSS
選擇器的字符串。
getElementsByClassName
的參數name
可包含一或多個類名,元素必須同時包括這些類名。規範
querySelectorAll
屬於W3C
中的Selectors API
規範;getElementsByClassName
屬於W3C
的DOM
規範。執行效率
單從API
執行效率上,getElementsByClassName
要比querySelectorAll
快。但是我們使用上差異微乎其微,具體選用哪個API
要看使用場景。
延申:NodeList和HTMLCollection的區別
兩張圖基本上就明白了:
詳見 HTMLCollection與NodeList