亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

querySelectorAll 方法相比 getElementsBy 系列方法有什么區別?

querySelectorAll 方法相比 getElementsBy 系列方法有什么區別?

剛毅87 2016-06-18 16:12:26
var ul1 = document.getElementById('ul1') ;var lis = document.querySelectorAll('li');var lis = document.getElementsByTagName('li');querySelectorAll 方法相比 getElementsBy 系列方法有什么區別?
查看完整描述

3 回答

?
剛毅87

TA貢獻345條經驗 獲得超309個贊

在現代瀏覽器中,querySelectorAll 的返回值是一個靜態的 NodeList 對象,而 getElementsBy 系列的返回值實際上是一個 HTMLCollection 對象 。

getElement* 的實時性體現在返回集合的時候,我們知道getElementsBy*和querySelectorAll返回的都是一個節點集合,類似于數組,兩種方法的區別就在于這個集合會不會自動更新。

querySelectorAll 的返回值是一個靜態數組,之后對document結構的改變不會影響到之前取到的結果


查看完整回答
2 反對 回復 2016-06-18
  • 黃志明
    黃志明
    這么說在動態頁面里document更加實用了?畢竟現在很多前端東西都是后臺數據傳過來的?
  • 剛毅87
    剛毅87
    在動態頁面中 getElementsBy 應該更加適合,可以這么說
?
_瀟瀟暮雨

TA貢獻646條經驗 獲得超225個贊

querySelectorAll可以像jQuery那樣傳入CSS選擇器進行元素的選取,例如選取div下面所有的a就可以寫成document.querySelectorAll('div a'),而通過getElementsBy則需要2步:document.getElementsByTagName('div')[0].getElementsByTagName('a')

查看完整回答
1 反對 回復 2016-06-18
  • 剛毅87
    剛毅87
    document.getElementsByTagName('a') 只需一步!
  • _瀟瀟暮雨
    _瀟瀟暮雨
    你這是選取頁面中所有的a元素并不是div下面的a。
  • 剛毅87
    剛毅87
    好吧,這我也知道,但這不是我問的重點. 我把問題改了!
  • 3 回答
  • 0 關注
  • 2348 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號