انتقل إلى محتوى الدرس

Overwriting Risk of className مخاطر استبدال نص className

أتقن إدارة الفئات في DOM بالمقارنة العملية بين السلسلة الكاملة className والتحكم الذري عبر دوال classList المشروطة لعناصر HTML وSVG.
3 صفوف تعليمية
جافا سكريبت
2,916 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

يؤدي الإسناد المباشر card.className = "active" إلى مسح واستبدال كامل نص السمة، فتختفي فوراً فئات التخطيط الأساسية مثل "card" و"rounded"! وحتى محاولة الدمج اليدوي عبر card.className += " active" هشة ومعرضة للأخطاء؛ إذ يؤدي نسيان المسافة البادئة إلى التصاق الأسماء ("cardactive") وتكرار النقرات يراكم نفس الفئة عدة مرات.

الصف 2 كود برمجي
JavaScript
const bad = document.getElementById('badCard');
const good = document.getElementById('goodCard');
// Overwrites existing "card bordered" classes!
bad.className = 'highlight';
// Preserves existing classes safely!
good.classList.add('highlight');
الصف 3 ملاحظة هامة