Как добавить класс active к текущему элементу

Узнайте, как использовать JavaScript для добавления класса active к текущему элементу.

Выделение активного / текущего (нажатого) кнопки:

Попробуйте сами

Активный элемент

Шаг 1 - Добавить 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>

Шаг 2 - Добавить CSS:

/* Установить стили для кнопки */
.btn {
  border: none;
  outline: none;
  padding: 10px 16px;
  background-color: #f1f1f1;
  cursor: pointer;
}
/* Установить стили для класса 'active' (и кнопки при наведении мыши) */
.active, .btn:hover {
  background-color: #666;
  color: white;
}

Шаг 3 - Добавить JavaScript:

// Получить элемент контейнера
var btnContainer = document.getElementById("myDIV");
// Получить все кнопки с классом '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";
  });
}

Попробуйте сами

Если элемент button в начале не имеет класса 'active', используйте следующий код:

// Получить элемент контейнера
var btnContainer = document.getElementById("myDIV");
// Получить все кнопки с классом '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";
  });
}

Попробуйте сами