Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

145
Visualizações
Adding active class to element on menu

I'm looking to add an active element class to my navbar, when I select the next link the previous one stays highlighted, I just want the current link to remain active.

See code below:

 <header>
  <nav>
    <ul>
      <li><a href="#">home</a></li>
      <li><a href="#">about</a></li>
      <li><a href="#">service</a></li>
      <li><a href="#">profile</a></li>
      <li><a href="#">portfolio</a></li>
      <li><a href="#">contact</a></li>
    </ul>
  </nav>
</header>

    
document.querySelectorAll('li').forEach(item => {
  item.addEventListener('click', event => {
    alert(item.outerHTML);
    if(item.className === "active"){
    item.classList.remove("active");
    }
    item.classList.add("active");

  });

})

https://jsfiddle.net/9xca1pgh/42/

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

You could remove active class from all li element and add the active class to the current one

document.querySelectorAll('li').forEach(item => {
  item.addEventListener('click', event => {
    document.querySelectorAll('li').forEach(i => {i.classList.remove('active')})
    item.classList.add('active')
  })
})

If you want to use for loops

for(let item of document.querySelectorAll('li')) {
  item.addEventListener('click', event => {
    // Remove active class from all li
    for(let i of document.querySelectorAll('li')) {
      i.classList.remove('active')
    }
    item.classList.add('active')
  })
}
about 4 years ago · Juan Pablo Isaza Relatório

0

because the item in the event is target to this

  • itself, you need to find the active tag and remove it.

    document.querySelectorAll('li').forEach(item => {
      item.addEventListener('click', event => {
        alert(item.outerHTML);
        document.querySelectorAll('li').forEach(item => {
            if(item.className === "active"){
        item.classList.remove("active");
        }
        });
        item.classList.add("active");
    
      });
    
    })
    
  • about 4 years ago · Juan Pablo Isaza Relatório
    Responde à pergunta
    Encontrar trabalhos remotos

    Descubra a nova forma de encontrar um emprego!

    melhores empregos
    Principais categorias de trabalho
    Empresas
    Postar vaga Preços Comercial
    Jurídico
    Termos e Condições Política de privacidade
    © 2026 PeakU Inc. All Rights Reserved.
    Andres GPT
    Recomende algumas ofertas para mim
    Preciso de ajuda