انتقل إلى محتوى الدرس
الدرس 60
تاريخ النشر: تاريخ التحديث:
دورة جافا سكريبت

مجموعات العناصر DOM Collections في JavaScriptHTML DOM Collections طريقة فحص السكربتات document scripts، وتحويل المجموعات عبر Array from، والمجموعات المدمجة بكائن المستند

افحص خصائص المستند الفورية ومجموعات HTMLCollection الحية في JavaScript للوصول للرأس والعنوان والجسم والصور والروابط والنماذج وتحويلها عبر Array.from.
أقسام الدرس
6
الأمثلة
3
اللغة
العربية
المشاهدات
5,022
محتوى الدرس
في هذا الدرس 6تصفّح المواضيع

زوّدت المتصفحات كائن document بخصائص جاهزة ومجموعات حية من نوع HTMLCollection تمنحك وصولاً فورياً لأقسام الصفحة الكبرى وعناصرها المتكررة—مثل document.head وdocument.body وdocument.images وdocument.links وdocument.forms وdocument.scripts—دون الحاجة لكتابة محددات استعلام في الفحوصات الشاملة للصفحة.

مخطط خصائص المستند الفورية والمجموعات الحية المدمجة وتحويلها إلى مصفوفة عبر Array.from

تشير خاصية document.documentElement إلى العنصر الجذر <html>، وتشير document.head إلى قسم رأس الصفحة <head>، وdocument.body إلى جسم المستند <body>، بينما تتيح document.title قراءة وتحديث نص عنوان تبويب المتصفح بأمان:

الخاصية المدمجةنوع القيمة المسترجعةالعناصر المستهدفة في المستند
document.documentElementعنصر مفرد Elementالعنصر الجذر <html> لضبط سمات الوضع اللوني واللغة
document.head / document.bodyعنصر مفرد Elementقسم رأس الصفحة <head> وحاوية الجسم <body>
document.titleنص عادي stringقراءة أو تغيير عنوان التبويب داخل <title>
document.imagesمجموعة حية HTMLCollectionجميع عناصر الصور <img> بترتيب ظهورها
document.linksمجموعة حية HTMLCollectionجميع عناصر <a> و<area> المزودة بسمة href
document.forms / document.scriptsمجموعة حية HTMLCollectionجميع عناصر النماذج <form> والسكربتات <script>

تعيد الخاصية document.images مجموعة حية تضم كل عنصر <img> في الصفحة. تستخدمها أدوات فحص الجودة وسهولة الوصول للمرور بحلقة for...of أو الفهرس الرقمي لإحصاء الصور وفحص مساراتها والتأكد من وجود النص البديل alt.

JavaScript
function auditImages() {
  const imgs = document.images;
  let missingAlt = 0;
  for (const img of imgs) {
    if (!img.alt) missingAlt += 1;
  }
  const out = document.getElementById('img-audit');
  out.textContent = 'Images: ' + imgs.length + ' | Missing alt: ' + missingAlt;
}

تعيد الخاصية document.scripts مجموعة حية تشمل جميع وسوم <script> في الصفحة سواء كانت ملفات خارجية تمتلك src أو سكربتات مضمنة، بينما تحصي document.embeds عناصر التضمين <embed>. وتُفيد في أدوات التشخيص للتحقق من تحميل الحزم ومراجعة مصادرها.

تشبه مجموعة HTMLCollection المصفوفة لامتلاكها .length وفهارس رقمية، لكن Array.isArray(document.links) ترجع false! لذلك فإن استدعاء دوال المصفوفات مثل .slice() أو .reverse() عليها مباشرة يطلق خطأ TypeError. يمنحك استدعاء Array.from(document.links) نسخة مصفوفة حقيقية ثابتة تدعم جميع دوال المصفوفات وتحميك من الحلقات اللانهائية أثناء تعديل الشجرة.

JavaScript
function takeTopTwoLinks() {
  const raw = document.links;
  const arr = Array.from(raw).slice(0, 2);
  const labels = [];
  arr.forEach(function (a) { labels.push(a.textContent); });
  const out = document.getElementById('arr-out');
  out.textContent = 'isArray: ' + Array.isArray(arr) + ' -> ' + labels.join(', ');
}
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

مراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي

ماذا تعلّمت في هذا الدرس؟

استكشفت خصائص المستند الفورية (head وtitle وbody) وفحصت المجموعات الحية للصور والروابط والنماذج والسكربتات وحولتها لمصفوفات حقيقية عبر Array.from(). الخطوة التالية: انتقل إلى الفصل العاشر لإتقان هندسة أحداث DOM التفاعلية وكائنات الأحداث باحترافية!

مشاركة

هل كان هذا الدرس مفيدًا؟

جارٍ تحميل الآراء…

ابنِ لغتك البرمجية

المصطلحات4

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 4 مفهومةأول بطاقة، أول خطوة
01 HTMLCollection مجموعة العناصر الحية HTMLCollection
قائمة عناصر حية شبيهة بالمصفوفة توفرها خصائص مدمجة مثل document.images وdocument.links وdocument.forms.
للمراجعة
02 document.title خاصية عنوان الصفحة document.title
خاصية نصية في كائن المستند تقرأ أو تحدّث عنوان الصفحة الظاهر في تبويب المتصفح كنص آمن.
للمراجعة
03 document.links مجموعة الروابط document.links
مجموعة حية تضم جميع عناصر الروابط <a> و<area> التي تمتلك سمة href داخل المستند.
للمراجعة
04 Array.from() دالة التحويل Array.from()
دالة ثابتة مدمجة تحول المجموعات الشبيهة بالمصفوفة مثل HTMLCollection إلى مصفوفة JavaScript حقيقية وثابتة.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

حروف قليلة. معنى كامل.

الاختصارات2

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 2 مفهومةأول بطاقة، أول خطوة
01 DOM DOM
Document Object Model
نموذج كائن المستند الشجري الذي يتيح الوصول لمجموعات العناصر المدمجة وفحصها برمجياً.
للمراجعة
02 CSP CSP
Content Security Policy
سياسة أمان المحتوى التي تقيد مصادر تحميل السكربتات وتتكامل مع فحص document.scripts.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

من الفهم للتطبيق

مهامك قبل الاختبار

خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.

0/2مهام منجزة
  1. افتح مثال فحص الصور وانقر الزر للمرور على مجموعة document.images وإحصاء الصور التي تفتقر للنص البديل.

  2. افتح مثال تحويل الروابط وانقر الزر لاقتطاع أول رابطين عبر .slice(0, 2) بعد التحويل بالدالة Array.from().

تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.

مساحة التحدي

اختبر فهمك.
ووصلها للإتقان.

كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.

10أسئلة 2أنواع تحديات 100%هدف الإتقان
تصحيح تلقائي. فرص بلا حدود.

أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.

الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.

لمحة عن التحدي10 أسئلة تنتظرك
01

ما نوع الكائن الذي ترجعه الخصائص document.images وdocument.links وdocument.forms؟

02

أي خاصية تقرأ أو تحدّث النص الظاهر على تبويب المتصفح مباشرة؟

03

إذا عمل سكربت متزامن داخل قسم الرأس <head> قبل تحليل وسم <body> فإن قيمة document.body تكون null.

04

ماذا يحدث لقيمة document.images.length فور إلحاق عنصر <img> جديد داخل جسم الصفحة؟

05

يدخل العنصر <a id="top">Top</a> الخالي من سمة href ضمن عناصر مجموعة document.links.

06

كيف تصل مباشرة إلى النموذج <form id="checkoutForm"> عبر خاصية document.forms؟

07

أي مجموعة مدمجة تسرد جميع وسوم <script> الموجودة حالياً في المستند؟

08

تقييم العبارة Array.isArray(document.images) يرجع false لأن HTMLCollection شبيهة بالمصفوفة وليست مصفوفة حقيقية.

09

أي استدعاء يحول document.links بنظافة إلى مصفوفة JavaScript ثابتة تقبل دوال .slice() و.forEach()؟

10

أي خاصية تشير مباشرة إلى العنصر الجذر <html> في الصفحة؟