كيفية إضافة فئة active إلى العنصر الحالي

تعلم كيفية استخدام JavaScript لإضافة فئة active إلى العنصر الحالي.

تسليط الضوء على الزر النشط/الحالي (الذي تم الضغط عليه):

تجربة بنفسك

العنصر النشط

الخطوة الأولى - إضافة HTML:

<div id="myDIV">
  <button class="btn">1</button>
  <button class="btn active">2</button>
  <button class="btn">3</button>
  <button class="btn">4</button>
  <button class="btn">5</button>
</div>

الخطوة الثانية - إضافة CSS:

/* ضع النمط على الزر */
.btn {
  border: none;
  outline: none;
  padding: 10px 16px;
  background-color: #f1f1f1;
  cursor: pointer;
}
/* ضع النمط على صنف active (وزر عند مرور الفأرة عليه) */
.active, .btn:hover {
  background-color: #666;
  color: white;
}

الخطوة الثالثة - إضافة JavaScript:

// الحصول على عنصر المقبض
var btnContainer = document.getElementById("myDIV");
// الحصول على جميع الأزرار التي تحتوي على الصنف class="btn" في المقبض
var btns = btnContainer.getElementsByClassName("btn");
// تدور على الأزرار وضيف الصنف active إلى الزر الحالي/الزر الذي تم النقر عليه
for (var i = 0; i < btns.length; i++) {
  btns[i].addEventListener("click", function() {
    var current = document.getElementsByClassName("active");
    current[0].className = current[0].className.replace(" active", "");
    this.className += " active";
  });
}

تجربة بنفسك

إذا لم يتم تعيين صنف active على عنصر الزر في البداية، استخدم التالي:

// الحصول على عنصر المقبض
var btnContainer = document.getElementById("myDIV");
// الحصول على جميع الأزرار التي تحتوي على الصنف class="btn" في المقبض
var btns = btnContainer.getElementsByClassName("btn");
// تدور على الأزرار وضيف الصنف active إلى الزر الحالي/الزر الذي تم النقر عليه
for (var i = 0; i < btns.length; i++) {
  btns[i].addEventListener("click", function() {
    var current = document.getElementsByClassName("active");
    // إذا لم يكن هناك صنف active
    if (current.length > 0) {
      current[0].className = current[0].className.replace(" active", "");
    }
    // تضيف الصنف active إلى الزر الحالي/الزر الذي تم النقر عليه
    this.className += " active";
  });
}

تجربة بنفسك