SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
28.11.2024

Adicionando e Removendo Classes CSS em JavaScript: Um Guia

Resposta Rápida

Você pode usar classList em JavaScript para gerenciar classes:

// Adicionando classes:
document.querySelector('.meu-elemento').classList.add('classe1', 'classe2');

// Removendo classes:
document.querySelector('.meu-elemento').classList.remove('classe1', 'classe2');

Com classList, adicionar e remover classes é tão fácil quanto andar para frente!

Gerenciamento Sistemático de Classes

Existem muitos métodos para trabalhar com classes:

Adicionando Várias Classes de Uma Vez

let elemento = document.querySelector('.meu-elemento');
elemento.classList.add(...['classe3', 'classe4', 'classe5']); // Que comece a diversão!

Removendo uma Classe com Verificação

if (elemento.classList.contains('classe2')) {  // Verifique a classe antes de removê-la.
  elemento.classList.remove('classe2');
}

Adicionando Classes Diretamente

Se simplicidade e objetividade são importantes para você:

elemento.className += ' classe6 classe7';  // Lembre-se dos espaços entre os nomes das classes!

Método para Navegadores "Dinossauros"

Suporte para navegadores desatualizados, como o IE8:

elemento.className = elemento.className.replace(/\\bclasse7\\b/g, "");  // Ajudando os "dinossauros."

Se você precisar transpilar código moderno para um padrão mais antigo, pode usar o Babel.

Visualização

Podemos pensar no elemento HTML como um modelo em uma passarela:

Visual original: [👕, 👖]

Adicionando classes:

elemento.classList.add('🎩', '👞'); // Pronto para o show!
Novo visual: [👕, 👖, 🎩, 👞]

Removendo classes:

elemento.classList.remove('👖'); // Adaptando-se às novas tendências.
Visual final: [👕, 🎩, 👞]

Com classList, você está no controle total do estilo!

Interface Dinâmica com Classes

Gerenciar classes dinamicamente cria um estilo e uma atmosfera únicos no seu site.

Adicionando um Listener de Evento

// Ao clicar, mude a classe como se estivesse trocando de roupa em um cabide.
elemento.addEventListener('click', function() {
  this.classList.toggle('ativo');
});

Adição Concisa de Classes

elemento.className += ' nova-classe'; // Mudando o estilo com uma nova classe.

O Método setAttribute para Navegadores Antigos

setAttribute ainda pode ser útil para trabalhar com versões mais antigas de navegadores:

elemento.setAttribute('class', elemento.className + ' nova-classe'); // Métodos antigos ainda são relevantes!

Clareza do Código

Busque minimalismo e clareza no seu código usando JavaScript puro para acelerar seu script.

Alternativas e Recursos do Gerenciamento de Classes

Métodos diferentes para gerenciar classes vêm com seus próprios recursos e são adequados para várias situações.

Atribuição Direta de Classes

// Vamos ser breves e claros!
elemento.setAttribute('class', 'classe8 classe9');

Clonando um Elemento

Em alguns casos, uma estratégia de clonagem pode ser vantajosa:

let novoElemento = elemento.cloneNode(true);
novoElemento.className = 'classe10 classe11'; // Seu elemento atualizado está pronto.
elemento.parentNode.replaceChild(novoElemento, elemento);

Armadilhas Potenciais

Tenha cuidado para não remover classes necessárias acidentalmente e sempre assegure que seu código seja compatível com vários navegadores. Não esqueça de garantir que a página HTML esteja completamente carregada antes de rodar scripts.

Recursos Úteis

  1. Propriedade classList do Elemento - Web API | MDN – um guia abrangente sobre como usar classList.
  2. Como Alternar Nomes de Classes – W3Schools – exemplos de alternância de classes.
  3. html - Como posso mudar a classe de um elemento com JavaScript? - Stack Overflow – dicas de desenvolvedores experientes.
  4. Fundamentos da Manipulação do DOM em JavaScript Puro (Sem jQuery) – SitePoint – uma explicação de qualidade sobre como trabalhar com classes.
  5. Propriedade classList do Elemento DOM - W3Schools – um documento completo sobre a propriedade classList.
  6. Introdução a Eventos - Aprenda Desenvolvimento Web | MDN – informações detalhadas sobre como trabalhar com eventos em JavaScript.

Video

Did you like this article? Rate it from 1 to 5:

Thank you for voting!