Zum Inhalt springen

JavaScript-Auswahl von DOM-Elementen

Das Verständnis dafür, wie man DOM-Elemente in JavaScript auswählt, ist für jeden Webentwickler entscheidend. Dieser umfassende Leitfaden behandelt alle wesentlichen Methoden und Techniken, um DOM-Elemente professionell auszuwählen und sicherzustellen, dass Ihre Webanwendungen dynamisch und interaktiv sind.

Einführung in die Auswahl von DOM-Elementen

Das Document Object Model (DOM) ist eine Programmierschnittstelle für Webdokumente. Es stellt die Seite so dar, dass Programme die Dokumentstruktur, den Stil und den Inhalt ändern können. Das effiziente Auswählen von DOM-Elementen ist der erste Schritt, um Webseiten mit JavaScript zu manipulieren.

Verwendung von getElementById

Eine der einfachsten und am häufigsten verwendeten Methoden ist es, ein einzelnes Element über seine ID auszuwählen.


javascript
const element = document.getElementById('example');
element.textContent = "You clicked the button!";

In diesem Beispiel verwenden wir getElementById, um das Element mit der ID example auszuwählen und seinen Textinhalt zu aktualisieren.

Verwendung von getElementsByClassName

Diese Methode gibt eine Live-HTMLCollection von Elementen mit dem angegebenen Klassennamen zurück. Sie ist wichtig, um mehrere Elemente anzusprechen.


javascript
const elements = document.getElementsByClassName('example');
Array.from(elements).forEach((element, index) => {
    element.textContent = `Element ${index + 1} changed!`;
});

Hier wählt getElementsByClassName alle Elemente mit der Klasse example aus. Der Code durchläuft dann die Sammlung, um den Textinhalt jedes Elements zu aktualisieren.

INFO

Wandeln Sie die HTMLCollection immer mit Array.from() in ein Array um, um Array-Methoden wie forEach() zu verwenden. Beachten Sie, dass diese Methode eine live Sammlung zurückgibt, was bedeutet, dass sie sich automatisch aktualisiert, wenn sich das DOM ändert.

Verwendung von getElementsByTagName

Wählt alle Elemente mit dem angegebenen Tag-Namen aus und liefert eine Live-HTMLCollection.


javascript
const paragraphs = document.getElementsByTagName('p');
for (let i = 0; i < paragraphs.length; i++) {
    paragraphs[i].style.backgroundColor = 'yellow';
}

In diesem Beispiel wählt getElementsByTagName alle p-Elemente aus. Die Schleife hebt dann jeden Absatz hervor, indem sie seine Hintergrundfarbe auf Gelb ändert.

Verwendung von querySelector

Die Methode querySelector gibt das erste Element zurück, das zu einem angegebenen CSS-Selektor passt.


javascript
const element = document.querySelector('.example');
element.style.backgroundColor = 'lightblue';

Hier wählt querySelector das erste Element mit der Klasse example aus, und seine Hintergrundfarbe wird in Hellblau geändert.

INFO

Verwenden Sie querySelector für die Auswahl des ersten passenden Elements und querySelectorAll für die Auswahl aller passenden Elemente.

Verwendung von querySelectorAll

Diese Methode gibt eine statische NodeList von Elementen zurück, die dem angegebenen CSS-Selektor entsprechen.


javascript
const elements = document.querySelectorAll('.example');
elements.forEach((element, index) => {
    element.style.backgroundColor = 'lightgreen';
    element.textContent = `Element ${index + 1} highlighted!`;
});

In diesem Beispiel wählt querySelectorAll alle Elemente mit der Klasse example aus. Der Code aktualisiert dann die Hintergrundfarbe und den Textinhalt jedes ausgewählten Elements.

INFO

querySelectorAll gibt eine statische NodeList zurück, die sich nicht automatisch aktualisiert, wenn sich das DOM ändert. Das steht im Gegensatz zu getElementsByClassName und getElementsByTagName, die live HTMLCollections zurückgeben. Obwohl forEach in allen modernen Browsern unterstützt wird, können ältere Umgebungen Array.from(elements).forEach(...) erfordern.

Verwendung von matches

Die Methode matches prüft, ob ein Element einem bestimmten CSS-Selektor entspricht.


javascript
const element = document.getElementById('test');
if (element.matches('.example')) {
    element.style.color = 'red';
    element.textContent = "Element matches the selector!";
}

Hier wird matches verwendet, um zu prüfen, ob das Element mit der ID test die Klasse example hat. Wenn es passt, werden der Textinhalt und die Farbe aktualisiert.

Verwendung von closest

Die Methode closest durchläuft das Element und seine Eltern, um den nächstgelegenen Vorfahren zu finden, der dem angegebenen Selektor entspricht.


javascript
const element = document.getElementById('child');
const parent = element.closest('.outer');
parent.style.border = '2px solid red';

In diesem Beispiel findet closest für das Element mit der ID child den nächstgelegenen Vorfahren mit der Klasse outer, und sein Rahmen wird rot geändert.

INFO

Verwenden Sie closest, um den nächstgelegenen Vorfahren zu finden, was bei der Ereignisdelegation sehr nützlich ist.

Selektoren kombinieren

Selektoren können kombiniert werden, um gezielter auszuwählen.


javascript
const element = document.querySelector('.example.special');
element.style.backgroundColor = 'pink';
element.textContent = "Special element highlighted!";

Hier kombinieren wir Selektoren, um das Element mit den Klassen example und special anzusprechen und seine Hintergrundfarbe sowie seinen Textinhalt zu aktualisieren.

Fazit

Die Beherrschung der Auswahl von DOM-Elementen in JavaScript ist grundlegend für jeden Webentwickler. Durch die Nutzung der verschiedenen besprochenen Methoden können Sie Elemente effizient ansprechen und manipulieren, um dynamische und interaktive Webanwendungen zu erstellen.

INFO

Leistungshinweis: Ältere Methoden wie getElementById und getElementsByClassName sind in modernen Browsern stark optimiert. Für komplexe Abfragen werden querySelector und querySelectorAll aufgrund ihrer Flexibilität und der Unterstützung von CSS-Selektoren im Allgemeinen bevorzugt, auch wenn sie bei extrem großen DOMs etwas langsamer sein können. Bevorzugen Sie beim Iterieren immer statische Sammlungen (querySelectorAll) aus Performancegründen, da live Sammlungen (getElementsBy...) bei jeder DOM-Änderung Reflows auslösen. Beachten Sie, dass querySelectorAll stark optimiert ist und für typische Anwendungsfälle schnell genug ist.

Practice

Which of the following methods can be used to select DOM elements in JavaScript?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.