"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como usar getElementsByClassName corretamente e alterar estilos de elementos com base em eventos?

Como usar getElementsByClassName corretamente e alterar estilos de elementos com base em eventos?

Publicado em 2024-11-08
Navegar:503

How to Correctly Use getElementsByClassName and Change Element Styles Based on Events?

Alterando estilos de elemento usando getElementsByClassName

getElementsByClassName permite selecionar vários elementos com o mesmo nome de classe. No exemplo dado, o código tem como objetivo alterar a cor de fundo de todos os divs com um nome de classe específico quando um evento ocorre fora desses divs.

Diagnóstico de Problemas

O o código fornecido tem alguns problemas:

  1. Uso incorreto de getElementsByClassName: A sintaxe getElementsByClassName() retorna uma coleção de elementos correspondentes, não um único elemento DOM. Para alterar o estilo de cada elemento, você precisa percorrer a coleção.
  2. Sintaxe HTML inválida: O ID de um elemento não pode conter espaços, tornando seus IDs do alternador de cores A e do alternador de cores B inválidos .

Solução

Para resolver esses problemas, você pode usar o seguinte código corrigido:

window.onload = function() {
  var aElements = document.getElementsByClassName('a');
  var bElements = document.getElementsByClassName('b');

  document.getElementById('A').addEventListener('mouseover', function() {
    changeColor(aElements, 'red');
  });

  document.getElementById('B').addEventListener('mouseover', function() {
    changeColor(bElements, 'blue');
  });
};

function changeColor(elements, color) {
  for (var i = 0; i 

Neste código corrigido:

  1. Percorremos as coleções retornadas por getElementsByClassName para alterar o estilo de todos os elementos correspondentes.
  2. Usamos IDs corretos sem espaços. para identificar os elementos acionadores.
  3. Definimos a função changeColor para aplicar a mudança de cor desejada aos elementos.

Notas adicionais

Para um desempenho ideal, considere armazenar em cache a coleção de elementos em vez de consultá-la novamente todas as vezes. Além disso, usar classes CSS e ouvintes de eventos para mudanças de estilo é mais eficiente do que atributos embutidos.

Declaração de lançamento Este artigo foi reimpresso em: 1729726237 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

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