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

101
Visualizações
Toggle icon symbol on click using js

In this menu, I'm trying to change the "+" symbol to "-" on click, but I don't know how to proceed. It will be a button that I'll change to custom icons later...

html

<header id="header">
      <div class="header-container">
        <p id="logo">Logo</p>
        <nav id="nav">
          <div id="btn-mobile">+</div>
          <ul id="menu">
            <li><a href="#">Sobre</a></li>
            <li><a href="#">Trabalhos</a></li>
            <li><a href="#">Carreiras</a></li>
            <li><a href="#">Contato</a></li>
          </ul>
        </nav>
      </div>
    </header>

js

const btnMobile = document.getElementById('btn-mobile');

function toggleMenu() {
  const nav = document.getElementById('nav');
  nav.classList.toggle('active');
}

btnMobile.addEventListener('click', toggleMenu);

thanks!

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

0

All you got to do is use innerText on your btn-mobile

const btnMobile = document.getElementById('btn-mobile');

function toggleMenu() {
  const nav = document.getElementById('nav');
  const btnMobile = document.getElementById('btn-mobile');
  nav.classList.toggle('active');
  btnMobile.innerText = '-';
  
}

btnMobile.addEventListener('click', toggleMenu);

or textContent, both does almost the same job, there's just some minor difference. Reference: https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/innerText

MDN is a great place to learn these basic JS DOM method.

about 4 years ago · Juan Pablo Isaza Relatório

0

You can use i and use css class to set the content of + or -

const btnMobile = document.getElementById('icon');

function toggleMenu() {
  if (btnMobile.classList.contains('icon-plus')) {
    btnMobile.classList.remove('icon-plus');
    btnMobile.classList.add('icon-minus')
  } else if (btnMobile.classList.contains('icon-minus')) {
    btnMobile.classList.remove('icon-minus');
    btnMobile.classList.add('icon-plus')

  }
}

btnMobile.addEventListener('click', toggleMenu);
.icon-plus:after {
  content: '+';
  cursor: pointer;
}

.icon-minus:after {
  content: '-';
  cursor: pointer;
}
<header id="header">
  <div class="header-container">
    <p id="logo">Logo</p>
    <nav id="nav">
      <div id="btn-mobile">
        <i id='icon' class="icon icon-plus"></i>
      </div>
      <ul id="menu">
        <li><a href="#">Sobre</a></li>
        <li><a href="#">Trabalhos</a></li>
        <li><a href="#">Carreiras</a></li>
        <li><a href="#">Contato</a></li>
      </ul>
    </nav>
  </div>
</header>

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