JavaScript HTML DOM tugunlar ro'yxati (NodeList)
HTML DOM NodeList obyekti
NodeList obyekti — bu hujjatdan olingan tugunlar ro'yxati (kolleksiyasi).
NodeList obyekti HTMLCollection obyektiga juda o'xshash.
- Ba'zi (eski) brauzerlar
getElementsByClassName()kabi metodlar uchunHTMLCollectiono'rnigaNodeListqaytaradi. - Barcha brauzerlar
childNodesxususiyati uchunNodeListqaytaradi. - Ko'pgina brauzerlar
querySelectorAll()metodi uchunNodeListqaytaradi.
Quyidagi kod hujjatdagi barcha <p> tugunlarini tanlaydi:
const myNodeList = document.querySelectorAll('p')NodeList elementlariga indeks raqami orqali murojaat qilish mumkin. Ikkinchi <p> tuguniga kirish:
myNodeList[1]Eslatma
Indeks 0 dan boshlanadi.
NodeList uzunligi (length)
length xususiyati tugunlar ro'yxatidagi tugunlar sonini belgilaydi:
myNodeList.lengthlength xususiyati tugunlar ro'yxati bo'ylab sikl aylanishda foydali:
const myNodelist = document.querySelectorAll('p')
for (let i = 0; i < myNodelist.length; i++) {
myNodelist[i].style.color = 'red'
}HTMLCollection va NodeList o'rtasidagi farq
NodeList va HTMLCollection deyarli bir xil narsa.
Har ikkalasi ham hujjatdan olingan tugunlarning (elementlarning) massivga o'xshash kolleksiyasidir. Har ikkalasida ham indeks 0 dan boshlanadi va length xususiyati mavjud.
Asosiy farqlar:
HTMLCollection— bu hujjat elementlari kolleksiyasi.NodeList— bu hujjat tugunlari kolleksiyasi (element tugunlari, atribut tugunlari va matn tugunlari).HTMLCollectionelementlariga nomi, ID-si yoki indeksi orqali murojaat qilish mumkin.NodeListelementlariga faqat indeks raqami orqali murojaat qilish mumkin.- Jonli (Live) vs Statistik (Static):
HTMLCollectionhar doim jonli kolleksiya hisoblanadi. Agar DOM-ga yangi<li>qo'shsangiz,HTMLCollectiondagi ro'yxat ham o'zgaradi.NodeListko'pincha statistik (o'zgarmas) kolleksiyadir. Agar DOM-ga yangi element qo'shsangiz,querySelectorAll()orqali olinganNodeListo'zgarmasdan qoladi.
TIP
getElementsByClassName() va getElementsByTagName() jonli HTMLCollection qaytaradi. querySelectorAll() esa statistik NodeList qaytaradi. childNodes xususiyati jonli NodeList qaytaradi.
Bu massiv emas!
NodeList massivga o'xshab ko'rinishi mumkin, lekin u massiv emas. Siz unda push(), pop() yoki join() kabi massiv metodlarini ishlata olmaysiz.
