HTML DOM Node Lists
در DOM، وقتی چند Node را انتخاب میکنیم، مرورگر آنها را به صورت NodeList برمیگرداند.
NodeList شبیه آرایه است اما تمام ویژگیهای آرایه را ندارد.
🔹 1. ایجاد و دریافت NodeList
-
NodeList معمولا توسط روشهای زیر برگردانده میشود:
-
document.querySelectorAll(selector)
→ غیر زنده (Static) -
element.childNodes
→ زنده (Live)
-
🔹 2. ویژگیها و تفاوت با آرایه
-
میتوان به عناصر با index دسترسی داشت
-
طول مجموعه:
-
NodeList برگشتی از
querySelectorAll()
غیر زنده است → تغییرات DOM بعد از انتخاب اعمال نمیشوند -
NodeList برگشتی از
childNodes
زنده است → تغییرات DOM را دنبال میکند
🔹 3. پیمایش NodeList
-
روشهای رایج:
-
for
-
for...of
-
forEach
-
نکته: فقط NodeList برگشتی از
querySelectorAll()
قابلیتforEach
دارد.
🔹 4. تبدیل NodeList به آرایه
-
برای استفاده از تمام متدهای آرایه:
-
یا با اسپرد:
🔹 5. ویژگیهای NodeList
ویژگی | توضیح |
---|---|
length | تعداد Nodeها |
item(index) | دسترسی به Node با ایندکس |
forEach() | پیمایش Nodeها (برای NodeListهای غیر زنده) |
زنده یا غیر زنده | برگرفته از روش ایجاد NodeList (childNodes زنده، querySelectorAll غیر زنده) |
✅ خلاصه
-
NodeList → مجموعهای از Nodeها در DOM
-
ایجاد:
querySelectorAll()
(Static),childNodes
(Live) -
دسترسی:
items[index]
یاitem(index)
-
پیمایش:
for
,for...of
,forEach
-
تبدیل به آرایه →
Array.from()
یا[...NodeList]
-
تفاوت با HTMLCollection: NodeList شامل تمام Nodeها است و میتواند غیر زنده باشد