تغيير أنماط العناصر باستخدام getElementsByClassName
يتيح لك getElementsByClassName تحديد عناصر متعددة بنفس اسم الفئة. في المثال الموضح، تهدف التعليمات البرمجية إلى تغيير لون الخلفية لجميع divs مع اسم فئة محدد عند وقوع حدث خارج تلك divs.
تشخيص المشكلة
يحتوي الكود المقدم على بعض المشكلات:
الحل
لحل هذه المشكلات، يمكنك استخدام الكود المصحح التالي:
window.onload = function() {
var aElements = document.getElementsByClassName('a');
var bElements = document.getElementsByClassName('b');
document.getElementById('A').addEventListener('mouseover', function() {
changeColor(aElements, 'red');
});
document.getElementById('B').addEventListener('mouseover', function() {
changeColor(bElements, 'blue');
});
};
function changeColor(elements, color) {
for (var i = 0; i في هذا الكود المصحح:
- نقوم بالتكرار عبر المجموعات التي تم إرجاعها بواسطة getElementsByClassName لتغيير نمط جميع العناصر المطابقة.
- نستخدم المعرفات الصحيحة بدون مسافات. لتحديد العناصر المسببة.
- نحدد وظيفة تغيير اللون لتطبيق تغيير اللون المطلوب على العناصر.
ملاحظات إضافية
للحصول على الأداء الأمثل، فكر في تخزين مجموعة العناصر مؤقتًا بدلاً من إعادة الاستعلام عنها في كل مرة. بالإضافة إلى ذلك، يعد استخدام فئات CSS ومستمعي الأحداث لتغييرات النمط أكثر كفاءة من السمات المضمنة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3