Zugriff auf Elementstile über externes CSS in JavaScript
Beim Arbeiten mit HTML-Elementen, deren Stile in einer externen CSS-Datei definiert sind, ist dies möglich um diese Stile mit JavaScript zu manipulieren. Allerdings müssen bestimmte Richtlinien befolgt werden, um die gewünschten Ergebnisse zu erzielen.
Im gegebenen Beispiel wird der folgende Code verwendet, um die Farbe eines
zu ändern. Element mit der Home-Klasse beim Klicken:
function selectHome() { console.log("test"); document.getElementsByClassName("home").style += "background-color:green;"; }
Das Problem:
Das Problem mit diesem Code besteht darin, dass getElementsByClassName() eine NodeList zurückgibt, eine Live-Liste von alle passenden Elemente. Durch Zuweisen zur style-Eigenschaft dieser Liste wird der Stil aller Elemente direkt geändert. Um auf ein bestimmtes Element abzuzielen, müssen Sie auf das einzelne Element in der Liste zugreifen.
Die Lösung:
Ein besserer Ansatz besteht darin, querySelector() zu verwenden, um das auszuwählen erstes passendes Element und ändern Sie dann seinen Stil:
function selectHome() { const homeElement = document.querySelector(".home"); if (homeElement) { homeElement.style.backgroundColor = "green"; } }
Alternativ können Sie Folgendes verwenden, wenn Sie wissen, dass es immer nur ein Element mit der angegebenen Klasse geben wird: getElementByClassName()[0], um direkt darauf zuzugreifen. Dies wird jedoch im Allgemeinen nicht empfohlen, da es stark von der Annahme einer eindeutigen Klasse abhängt und zu unerwartetem Verhalten führen kann, wenn mehrere übereinstimmende Elemente vorhanden sind.
Zusätzliche Überlegungen:
Das obige ist der detaillierte Inhalt vonWie kann ich in externem CSS definierte Elementstile mithilfe von JavaScript effizient ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!