👉 كائن classList
للتحكم في أصناف العناصر (CSS Classes)
📌 ما هو classList
؟
هو كائن موجود داخل أي عنصر HTML، يسمح لك بـ:
- إضافة (class).
- إزالة كلاس.
- التحقق إذا كان الصنف موجودًا.
- تبديل (toggle) الصنف.
بدلاً من استخدام
element.className = ...
يمكنك استخدامelement.classList
بطريقة أكثر أمانًا ومرونة.
✅ أهم الدوال (methods) في classList
الدالة | الوظيفة |
---|---|
add() | إضافة صنف |
remove() | إزالة صنف |
toggle() | إذا موجود يزال، وإذا غير موجود يضاف |
contains() | هل الصنف موجود؟ يرجع true/false |
replace(old, new) | استبدال صنف بآخر |
🧪 أمثلة عملية
🔹 HTML:
<div id="box" class="blue">مربع</div>
<button onclick="changeStyle()">تغيير</button>
JavaScriptconst box = document.getElementById("box");
function changeStyle() {
// إضافة صنف
box.classList.add("rounded");
// إزالة صنف
box.classList.remove("blue");
// تبديل صنف
box.classList.toggle("shadow");
// التحقق من وجود صنف
if (box.classList.contains("shadow")) {
console.log("الصنف shadow موجود");
}
// استبدال صنف بصنف آخر
box.classList.replace("rounded", "circle");
}
JavaScript✅ شرح كل دالة:
🟩 add(className)
element.classList.add("active");
JavaScriptيضيف الصنف active
، وإذا كان موجودًا لا يكرره.
🟩 remove(className)
element.classList.remove("active");
JavaScriptيزيل الصنف إن كان موجودًا.
🟩 toggle(className)
element.classList.toggle("dark");
JavaScriptإذا كان dark
موجودًا → يزيله.
إذا غير موجود → يضيفه.
🟩 contains(className)
if (element.classList.contains("hidden")) {
console.log("العنصر مخفي");
}
JavaScriptيرجع true
أو false
.
🟩 replace(oldClass, newClass)
element.classList.replace("error", "success");
JavaScriptيستبدل الصنف error
بـ success
.
🟨 مثال تطبيقي: زر لتفعيل الوضع الليلي
<body>
<button onclick="toggleDarkMode()">تبديل الوضع</button>
</body>
HTMLfunction toggleDarkMode() {
document.body.classList.toggle("dark-mode");
}
JavaScript.dark-mode {
background-color: black;
color: white;
}
CSS✅ ملخص سريع:
الوظيفة | الكود |
---|---|
إضافة صنف | element.classList.add("x") |
إزالة صنف | element.classList.remove("x") |
تبديل صنف | element.classList.toggle("x") |
التحقق | element.classList.contains("x") |
استبدال | element.classList.replace("old", "new") |