„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie verwende ich getElementsByClassName richtig und ändere Elementstile basierend auf Ereignissen?

Wie verwende ich getElementsByClassName richtig und ändere Elementstile basierend auf Ereignissen?

Veröffentlicht am 08.11.2024
Durchsuche:355

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

Ändern von Elementstilen mit getElementsByClassName

getElementsByClassName ermöglicht Ihnen die Auswahl mehrerer Elemente mit demselben Klassennamen. Im angegebenen Beispiel zielt der Code darauf ab, die Hintergrundfarbe aller Divs mit einem bestimmten Klassennamen zu ändern, wenn ein Ereignis außerhalb dieser Divs auftritt.

Problemdiagnose

The Der bereitgestellte Code weist einige Probleme auf:

  1. Falsche Verwendung von getElementsByClassName: Die Syntax getElementsByClassName() gibt eine Sammlung übereinstimmender Elemente zurück, kein einzelnes DOM-Element. Um den Stil jedes Elements zu ändern, müssen Sie die Sammlung durchlaufen.
  2. Ungültige HTML-Syntax: Die ID eines Elements darf keine Leerzeichen enthalten, wodurch Ihre Colorswitcher A- und Colorswitcher B-IDs ungültig werden .

Lösung

Um diese Probleme zu beheben, können Sie den folgenden korrigierten Code verwenden:

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 

In diesem korrigierten Code:

  1. Wir durchlaufen die von getElementsByClassName zurückgegebenen Sammlungen, um den Stil aller übereinstimmenden Elemente zu ändern.
  2. Wir verwenden korrekte IDs ohne Leerzeichen um die auslösenden Elemente zu identifizieren.
  3. Wir definieren die Funktion changeColor, um die gewünschte Farbänderung auf die Elemente anzuwenden.

Zusätzliche Hinweise

Für eine optimale Leistung sollten Sie die Sammlung von Elementen zwischenspeichern, anstatt sie jedes Mal erneut abzufragen. Darüber hinaus ist die Verwendung von CSS-Klassen und Ereignis-Listenern für Stiländerungen effizienter als Inline-Attribute.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729726237 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3