Hur man lägger till active-klassen till aktuellt element

Lär dig hur du använder JavaScript för att lägga till active-klassen till aktuellt element.

Visa aktiv eller nuvarande (tryckt) knapp:

Prova själv

Aktiv element

Steg 1 - Lägg till 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>

Steg 2 - Lägg till CSS:

/* Ställ in stilar för knappen */
.btn {
  border: none;
  outline: none;
  padding: 10px 16px;
  background-color: #f1f1f1;
  cursor: pointer;
}
/* Ställ in stilar för klassen 'active' (och knappen när musen är över den) */
.active, .btn:hover {
  background-color: #666;
  color: white;
}

Steg 3 - Lägg till JavaScript:

// Hämta behållarelementet
var btnContainer = document.getElementById("myDIV");
// Hämta alla knappar med class="btn" inom behållaren
var btns = btnContainer.getElementsByClassName("btn");
// Genomgå knappar och lägg till klassen 'active' till den aktuella/klickade knappen
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";
  });
}

Prova själv

Om button-elementet inte har satts till klassen 'active' från början, använd följande kod:

// Hämta behållarelementet
var btnContainer = document.getElementById("myDIV");
// Hämta alla knappar med class="btn" inom behållaren
var btns = btnContainer.getElementsByClassName("btn");
// Genomgå knappar och lägg till klassen 'active' till den aktuella/klickade knappen
for (var i = 0; i < btns.length; i++) {
  btns[i].addEventListener("click", function() {
    var current = document.getElementsByClassName("active");
    // Om det inte finns någon klass 'active'
    if (current.length > 0) {
      current[0].className = current[0].className.replace(" active", "");
    }
    // Lägg till klassen 'active' till den aktuella/klickade knappen
    this.className += " active";
  });
}

Prova själv