3 回答

TA貢獻(xiàn)345條經(jīng)驗(yàn) 獲得超309個(gè)贊
在現(xiàn)代瀏覽器中,querySelectorAll 的返回值是一個(gè)靜態(tài)的 NodeList 對(duì)象,而 getElementsBy 系列的返回值實(shí)際上是一個(gè) HTMLCollection 對(duì)象 。
getElement* 的實(shí)時(shí)性體現(xiàn)在返回集合的時(shí)候,我們知道getElementsBy*和querySelectorAll返回的都是一個(gè)節(jié)點(diǎn)集合,類似于數(shù)組,兩種方法的區(qū)別就在于這個(gè)集合會(huì)不會(huì)自動(dòng)更新。
querySelectorAll 的返回值是一個(gè)靜態(tài)數(shù)組,之后對(duì)document結(jié)構(gòu)的改變不會(huì)影響到之前取到的結(jié)果

TA貢獻(xiàn)646條經(jīng)驗(yàn) 獲得超225個(gè)贊
querySelectorAll可以像jQuery那樣傳入CSS選擇器進(jìn)行元素的選取,例如選取div下面所有的a就可以寫成document.querySelectorAll('div a'),而通過getElementsBy則需要2步:document.getElementsByTagName('div')[0].getElementsByTagName('a')
添加回答
舉報(bào)