Skip to content

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 uchun HTMLCollection o'rniga NodeList qaytaradi.
  • Barcha brauzerlar childNodes xususiyati uchun NodeList qaytaradi.
  • Ko'pgina brauzerlar querySelectorAll() metodi uchun NodeList qaytaradi.

Quyidagi kod hujjatdagi barcha <p> tugunlarini tanlaydi:

js
const myNodeList = document.querySelectorAll('p')

NodeList elementlariga indeks raqami orqali murojaat qilish mumkin. Ikkinchi <p> tuguniga kirish:

js
myNodeList[1]

Eslatma

Indeks 0 dan boshlanadi.


NodeList uzunligi (length) ​

length xususiyati tugunlar ro'yxatidagi tugunlar sonini belgilaydi:

js
myNodeList.length

length xususiyati tugunlar ro'yxati bo'ylab sikl aylanishda foydali:

js
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:

  1. HTMLCollection — bu hujjat elementlari kolleksiyasi.
  2. NodeList — bu hujjat tugunlari kolleksiyasi (element tugunlari, atribut tugunlari va matn tugunlari).
  3. HTMLCollection elementlariga nomi, ID-si yoki indeksi orqali murojaat qilish mumkin.
  4. NodeList elementlariga faqat indeks raqami orqali murojaat qilish mumkin.
  5. Jonli (Live) vs Statistik (Static):
    • HTMLCollection har doim jonli kolleksiya hisoblanadi. Agar DOM-ga yangi <li> qo'shsangiz, HTMLCollectiondagi ro'yxat ham o'zgaradi.
    • NodeList ko'pincha statistik (o'zgarmas) kolleksiyadir. Agar DOM-ga yangi element qo'shsangiz, querySelectorAll() orqali olingan NodeList o'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.