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
HTML
Tailwind Css
Bootstrap 5
Java script
++C
Python
Three.js
Gsap
Sass
SQL
React