"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo utilizar correctamente getElementsByClassName y cambiar estilos de elementos según eventos?

¿Cómo utilizar correctamente getElementsByClassName y cambiar estilos de elementos según eventos?

Publicado el 2024-11-08
Navegar:633

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

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:

  1. Uso incorrecto de getElementsByClassName: La sintaxis getElementsByClassName() devuelve una colección de elementos coincidentes, no un solo elemento DOM. Para cambiar el estilo de cada elemento, debe recorrer la colección.
  2. Sintaxis HTML no válida: El ID de un elemento no puede contener espacios, lo que hace que los ID de su selector de colores A y B no sean válidos .

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:

  1. Recorremos las colecciones devueltas por getElementsByClassName para cambiar el estilo de todos los elementos coincidentes.
  2. Usamos ID correctos sin espacios para identificar los elementos desencadenantes.
  3. 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.

Declaración de liberación Este artículo se reimprime en: 1729726237 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

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