HTML DOM Collections
در DOM، هنگام انتخاب چندین عنصر، مرورگر آنها را به صورت Collection برمیگرداند.
این مجموعهها به دو نوع اصلی تقسیم میشوند: HTMLCollection و NodeList.
🔹 1. HTMLCollection
-
مجموعهای از عناصر HTML
-
معمولا توسط روشهای زیر برگردانده میشود:
-
getElementsByTagName()
-
getElementsByClassName()
-
forms
,images
,links
-
-
ویژگیها:
-
زنده (Live) → تغییرات DOM را به صورت خودکار نشان میدهد
-
آرایه واقعی نیست → باید با index دسترسی پیدا کرد یا تبدیل به آرایه کرد
-
🔹 2. NodeList
-
مجموعهای از Nodeها (Element, Text, Comment)
-
معمولا توسط روشهای زیر برگردانده میشود:
-
querySelectorAll()
-
childNodes
-
-
ویژگیها:
-
NodeList برگشتی از
querySelectorAll()
غیر زنده (Static) است -
NodeList برگشتی از
childNodes
زنده است -
میتوان از
forEach
روی NodeList استفاده کرد
-
🔹 3. تبدیل Collection به آرایه
-
برای استفاده از متدهای آرایه میتوان HTMLCollection یا NodeList را تبدیل کرد
-
یا با اسپرد:
🔹 4. تفاوت HTMLCollection و NodeList
ویژگی | HTMLCollection | NodeList |
---|---|---|
نوع عناصر | فقط Element | همه Nodeها (Element, Text, Comment) |
زنده بودن (Live) | ✅ زنده | ❌ غیر زنده (querySelectorAll ) / ✅ زنده (childNodes ) |
متد foreach | ❌ ندارد | ✅ دارد |
ایجاد با | getElementsByTagName , getElementsByClassName | querySelectorAll , childNodes |
✅ خلاصه
-
Collections → مجموعهای از عناصر یا Nodeها در DOM
-
HTMLCollection → فقط عناصر HTML، زنده، با index دسترسی
-
NodeList → Nodeها (Element, Text, Comment)، گاهی زنده، میتوان
forEach
استفاده کرد -
تبدیل به آرایه →
Array.from()
یا اسپرد[...collection]
-
انتخاب Collection:
getElementsByTagName
,getElementsByClassName
,querySelectorAll
,childNodes