"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف تختلف مجموعات HTML وقوائم العقد ومصفوفات الكائنات في معالجة DOM؟

كيف تختلف مجموعات HTML وقوائم العقد ومصفوفات الكائنات في معالجة DOM؟

تم النشر بتاريخ 2024-11-10
تصفح:445

How do HTMLCollections, NodeLists, and Object Arrays Differ in DOM Manipulation?

التمييز بين مجموعات HTML وقوائم العقد ومصفوفات الكائنات في DOM

عند الوصول إلى عقد DOM، غالبًا ما يواجه المطورون مجموعات HTML وقوائم العقد ومصفوفات الكائنات. يعد فهم الاختلافات بين هياكل البيانات هذه أمرًا بالغ الأهمية لمعالجة بنية المستند بشكل فعال.

HTMLCollections vs.NodeLists

تشترك HTMLCollections وNodeLists في أوجه التشابه كمجموعات العقد، لكن لديهما أوجه تشابه خصائص مميزة:

  • المحتوى: تحتوي مجموعات HTML على عنصر فقط العقد، بينما يمكن لـ NodeLists الاحتفاظ بأي نوع من العقد.
  • الطرق: بالإضافة إلى الطرق الشائعة لجميع المجموعات، توفر HTMLCollections طريقة NamedItem للوصول إلى العناصر بالاسم.

مجموعات Live vs.Snapshot

يمكن أن تكون مجموعات DOM إما حية أو لقطة:

  • مباشر: يتم تحديث المجموعات تلقائيًا عند إجراء تغييرات على DOM.
  • لقطة: تظل المجموعات ثابتة، بغض النظر عن ذلك. تعديلات DOM.
مجموعات DOM التي يتم إرجاعها بواسطة طرق المتصفح (على سبيل المثال، getElementsByTagName) عادة ما تكون مباشرة، بينما تحديدات jQuery هي لقطات.

المصفوفات مقابل مصفوفات الكائنات بينما تظهر كائنات jQuery كمصفوفات في سجلات وحدة التحكم، فهي في الواقع مصفوفات كائنات:

    المصفوفات:
  • يتم الوصول إلى المجموعات المتسلسلة باستخدام الأرقام الفهارس.
  • مصفوفات الكائنات:
  • المصفوفات التي يتم الوصول إلى العناصر فيها باستخدام كل من الخصائص الرقمية والمسماة.
اختيار العقد

استخدام المستند الطرق:

document.getElementsByTagName("td"): إرجاع مجموعة HTML لجميع عناصر td.
  • document.getElementsByClassName("myRow"): إرجاع NodeList من جميع العناصر ذات "myRow" class.
استخدام jQuery:

$("td"): تحديد جميع عناصر td وإرجاع كائن jQuery، مصفوفة كائن.
مثال على البرنامج النصي

يوضح البرنامج النصي المقدم الاختلافات بين البيانات الهياكل:

console.log('[123"،abc"،321،"cba"] =[123،"abc"،321،"cba"]: يقارن arrays.

    console.log('{123:123,abc:"abc",321:321,cba:"cba"}={123:123,abc:"abc",321:321, cba:"cba"}: يقارن صفائف الكائنات مع بناء جملة الكائن.
  • console.log('Node=',Node): يسجل كائن العقدة العامة، وهو عبارة عن مصفوفة كائن تمثل أنواع العقد.
  • console.log('document.links=',document.links): يسجل مجموعة HTMLCollection من الروابط.
  • وحدة التحكم .log('document.getElementById("myTable")=',document.getElementById("myTable")): يسجل عنصرًا واحدًا، وليس مجموعة.
  • console.log('document.getElementsByClassName("myRow")=',document.getElementsByClassName("myRow")): تسجيل قائمة عقدة من العناصر باستخدام "myRow" class.
  • console.log('document.getElementsByTagName("td")=',document.getElementsByTagName("td")): يسجل مجموعة HTMLCollection لجميع عناصر td.
  • console. log('$("#myTable")=',$("#myTable")): يسجل كائن jQuery يمثل #myTable element.
  • console.log('$("td")=',$("td")): يسجل مصفوفة كائن jQuery تحتوي على جميع عناصر td.
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3