在寫一個小組建的時候用到了document.querySelector,被小夥伴提醒說這個可能有坑,是啥呢?
先來一篇MDN的文檔解解饞:戳我戳我戳我>>>>>>>NodeList數組
翻譯一下主要部分:瀏覽器
``
好比,使用document.getElementById,獲取該元素的childNodes,那麼這個集合是live的。
可是,用document.querySelectorAll()獲取到的集合卻不是live的。
這個live具體指什麼呢?意思是,若是你事先獲取到一個集合,保存在一個變量A上。在對這個集合進行增刪改等操做,若是變量A可以實時反應你的增刪改操做,說明集合是live的,反之則不是。
``spa
這個「坑」就在於,文檔也沒有可以說明清楚,在用querySelector後,具體何時NodeList是live,何時NodeList不是live。prototype
因而小夥們作起了實驗,大體發現,若是對節點進行刪除,那麼是live;若是新增節點則不是live。翻譯
朋友們也能夠本身作作實驗。若是有新發現歡迎評論留言~rem
另外一個值得注意的是:關於HTMLCollection和NodeList。
從MDN的文檔上籠統來講,全部集合均可以叫作NodeList,不過須要注意以下:文檔