Виж
NodeLists и Arrays са две различни неща, защото NodeLists всъщност не са API на JavaScript, а API на браузър.
Неща като querySelectorAll()
и getElementsByTagName()
не са JavaScript методи, те са API на браузъра, които ви позволяват достъп до DOM елементи. След това можете да ги манипулирате с JavaScript.
NodeLists се различават от масивите и по друг значим начин.
Те често са живи списъци, което означава, че ако елементите бъдат премахнати или добавени към DOM, списъкът се актуализира автоматично. querySelector()
и querySelectorAll()
връщат статичен списък (този, който не се актуализира), но свойства като .childNodes са живи списъци, които ще се променят, докато манипулирате DOM (което може да е добро или лошо нещо, в зависимост от това как го използвате ).
Всичко това е още по-объркващо, защото масивите могат да съдържат възли. И има друг, по-стар тип списък, наречен HTMLCollection, който предшества NodeLists, но е функционално подобен (още една статия за друг ден).
Ключовият начин да мислите за NodeLists срещу масиви: NodeLists са езиково-агностичен начин за достъп до DOM елементи, а Arrays са JavaScript обект, който можете да използвате, за да съдържате колекции от неща.
Всеки от тях има свои собствени методи и свойства и можете да конвертирате NodeList в масив, ако е необходимо (но не и обратното).
person
Ahmed Kesha
schedule
16.03.2020