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:
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:
- Percorremos as coleções retornadas por getElementsByClassName para alterar o estilo de todos os elementos correspondentes.
- Usamos IDs corretos sem espaços. para identificar os elementos acionadores.
- 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.
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