Determinando a presença da classe do elemento em JavaScript
Ao inspecionar os atributos de classe de um elemento, muitas vezes é necessário verificar se ele contém uma classe específica. O código fornecido utiliza uma instrução switch para examinar o valor exato da classe de um elemento, mas essa abordagem falha em detectar correspondências parciais.
Para resolver essa limitação, considere o uso do método element.classList .contains. Este método aceita o nome de uma classe como parâmetro e retorna um booleano indicando sua presença na lista de classes do elemento:
element.classList.contains(class);
Este método é universalmente suportado em sistemas modernos navegadores e fornece uma maneira consistente de verificar a inclusão de classes.
Como alternativa, para compatibilidade com navegadores mais antigos que não possuem o método .contains, você pode empregar a seguinte versão modificada do método indexOf:
function hasClass(element, className) { return (' ' element.className ' ').indexOf(' ' className ' ') > -1; }
Essa modificação garante que você detecte correspondências parciais com precisão, evitando falsos positivos quando a classe que você procura faz parte de um nome de classe maior.
Aplicando este método ao exemplo fornecido:
var test = document.getElementById("test"), classes = ['class1', 'class2', 'class3', 'class4']; test.innerHTML = ""; for(var i = 0, j = classes.length; iAo empregar o método .contains ou a função indexOf modificada, você pode determinar com segurança se um elemento contém uma classe específica em JavaScript, independentemente da compatibilidade do navegador ou da presença de correspondências parciais.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3