Alterar a classe de um elemento HTML com JavaScript
- Selecione um elemento HTML em JavaScript
- Alterar todas as classes aplicáveis a um elemento em JavaScript
- Insira uma classe extra para o elemento em JavaScript
- Excluir uma classe em um elemento em JavaScript
- Verifique se uma classe foi usada em um elemento em JavaScript
 
Este artigo demonstra como alterar a classe de um elemento HTML em resposta a eventos JavaScript.
Selecione um elemento HTML em JavaScript
Indiscutivelmente, a maneira mais fácil de selecionar um elemento HTML em JavaScript é por meio de document.getElementById().
Por exemplo, se você precisa selecionar um elemento com a ID de classe Alunos, veja como selecioná-lo.
document.getElementById('Students')
Alterar todas as classes aplicáveis a um elemento em JavaScript
Após selecionar o elemento usando seu ID de classe, você pode alterar sua classe ou substituir todas as suas classes, conforme mostrado acima. Você precisará definir uma nova usando o atributo .className para substituir a classe antiga, conforme mostrado abaixo.
Document.getElementById('Fruits').classname = 'Veggies';
Insira uma classe extra para o elemento em JavaScript
Você também pode adicionar uma nova classe a um elemento sem alterar nenhuma das classes existentes. Você pode fazer isso usando o operador += para adicionar a nova classe.
Por exemplo,
Document.getElementById('Subjects').className += 'Physics';
Ele adiciona uma classe extra chamada Física a outras classes no elemento Assuntos.
Excluir uma classe em um elemento em JavaScript
Excluir uma única classe em um elemento sem afetar outras classes é um pouco mais complexo. Você precisará usar .className.replace junto com o seguinte regex.
?:^|\s)RemoveThis(?!\S)/g
- ?:^|\scaptura o início de uma string e / ou qualquer caractere de espaço em branco único usado.
- RemoveThisé o nome da classe a ser removida.
- (?!\S)verifica se- RemoveThisé um nome de classe completo e verifica se há caracteres que não sejam espaços no final. Em outras palavras, ele garante que a regex seja colocada no final da string.
- gé o sinalizador que garante que o comando de substituição seja efetuado conforme necessário em todos os casos em que a classe foi adicionada.
Veja o exemplo abaixo.
document.getElementById('ElementOne').className =
    document.getElementById('ElementOne')
        .className.replace(/(?:^|\s)RemoveThis(?!\S)/g, '')
Verifique se uma classe foi usada em um elemento em JavaScript
Para verificar se uma classe foi aplicada a um elemento específico, você pode usar o regex acima. Isso é melhor alcançado usando um if(); declaração para dar um resultado. Por exemplo:
if (document.getElementById('ElementOne')
        .className.match(/(?:^|\s)ClassOne(?!\S)/))
print('Class has been used.')
A saída será Class has been used se a verificação for positiva, ou nenhuma saída se for negativa, a menos que uma ação ou saída alternativa seja definida com a instrução else.
Não é recomendável escrever código JavaScript diretamente nos atributos de evento HTML. Isso pode dificultar a execução e tornar os aplicativos mais lentos. Em vez disso, você pode escrever o JavaScript em uma função, chamando a referida função em um atributo onclick e movendo o evento do código HTML para o JavaScript. Você pode fazer isso com o atributo .addEventListener().