Heim > Web-Frontend > CSS-Tutorial > Hauptteil

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

Linda Hamilton
Freigeben: 2024-10-24 07:38:30
Original
837 Leute haben es durchsucht

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

Elementstile mit getElementsByClassName ändern

mit getElementsByClassName können Sie mehrere Elemente mit demselben Klassennamen auswählen. 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

Die 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:

<code class="javascript">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 < elements.length; i++) {
    elements[i].style.backgroundColor = color;
  }
}</code>
Nach dem Login kopieren

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 stattdessen die Sammlung von Elementen zwischenspeichern jedes Mal erneut abfragen. Darüber hinaus ist die Verwendung von CSS-Klassen und Ereignis-Listenern für Stiländerungen effizienter als Inline-Attribute.

Das obige ist der detaillierte Inhalt vonWie verwende ich getElementsByClassName richtig und ändere Elementstile basierend auf Ereignissen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!