Cambiar estilos de elementos usando getElementsByClassName
getElementsByClassName le permite seleccionar varios elementos con el mismo nombre de clase. En el ejemplo dado, el código tiene como objetivo cambiar el color de fondo de todos los divs con un nombre de clase específico cuando ocurre un evento fuera de esos divs.
Diagnóstico de problemas
El el código proporcionado tiene algunos problemas:
Solución
Para resolver estos problemas, puede utilizar el siguiente código corregido:
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 En este código corregido:
- Recorremos las colecciones devueltas por getElementsByClassName para cambiar el estilo de todos los elementos coincidentes.
- Usamos ID correctos sin espacios para identificar los elementos desencadenantes.
- Definimos la función changeColor para aplicar el cambio de color deseado a los elementos.
Notas adicionales
Para un rendimiento óptimo, considere almacenar en caché la colección de elementos en lugar de volver a consultarla cada vez. Además, usar clases CSS y detectores de eventos para cambios de estilo es más eficiente que los atributos en línea.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3