querySelector ·
createElement ·
innerHTML ·
addEventListener ·
classList ·
setAttribute
Das Document Object Model (DOM) ist die Schnittstelle zwischen JavaScript und HTML. Mit diesen Methoden können Sie Elemente finden, erstellen, verändern und auf Ereignisse reagieren.
Selektoren finden Elemente im DOM. querySelector() und querySelectorAll() verwenden CSS-Selektoren für maximale Flexibilität.
| Methode | Beschreibung | Rückgabe |
|---|---|---|
| querySelector(selektor) | Erstes Element, das den CSS-Selektor erfüllt | Element oder null |
| querySelectorAll(selektor) | Alle Elemente, die den CSS-Selektor erfüllen | NodeList (Array-ähnlich) |
| getElementById(id) | Element mit der angegebenen ID | Element oder null |
| getElementsByClassName(klasse) | Elemente mit der angegebenen Klasse | HTMLCollection |
| getElementsByTagName(tagname) | Elemente mit dem angegebenen Tag | HTMLCollection |
querySelector() ist flexibler als getElementById() und sollte bevorzugt werden. Für mehrere Elemente immer querySelectorAll() verwenden.
Elemente erstellen und einfügen – mit createElement() erzeugen Sie neue DOM-Elemente und mit appendChild() oder insertBefore() fügen Sie sie ein.
| Methode | Beschreibung |
|---|---|
| appendChild(child) | Fügt child als letztes Kind ein |
| insertBefore(new, reference) | Fügt new vor reference ein |
| replaceChild(new, old) | Ersetzt old durch new |
| removeChild(child) | Entfernt child |
| innerHTML | HTML-Code direkt einfügen (einfach, aber weniger sicher) |
| insertAdjacentHTML(pos, html) | HTML an Position einfügen ('beforebegin', 'afterbegin', 'beforeend', 'afterend') |
innerHTML ist schnell, aber XSS-gefährdet bei Benutzereingaben. Verwenden Sie textContent oder createElement() für mehr Sicherheit.
Inhalt ändern – textContent setzt reinen Text, innerHTML kann HTML-Tags enthalten, innerText berücksichtigt CSS-Styling.
innerHTML mit Benutzereingaben kann zu Cross-Site-Scripting (XSS) führen. Verwenden Sie textContent für Benutzereingaben!
Attribute und Klassen – mit setAttribute() und classList können Sie beliebige Attribute und CSS-Klassen verwalten.
| Methode | Beschreibung |
|---|---|
| setAttribute(name, wert) | Attribut setzen oder hinzufügen |
| getAttribute(name) | Attribut-Wert abrufen |
| removeAttribute(name) | Attribut entfernen |
| classList.add(klasse) | CSS-Klasse hinzufügen |
| classList.remove(klasse) | CSS-Klasse entfernen |
| classList.toggle(klasse) | CSS-Klasse ein-/ausschalten |
| classList.contains(klasse) | Prüfen, ob Klasse vorhanden ist |
classList.toggle() ist ideal für Menüs, Toggle-Buttons oder Dark-Mode – es fügt die Klasse hinzu, wenn sie fehlt, und entfernt sie, wenn sie vorhanden ist.
Event Listener reagieren auf Benutzerinteraktionen wie Klicks, Tastatureingaben oder Mausbewegungen.
| Event | Beschreibung |
|---|---|
| click | Klick auf ein Element |
| dblclick | Doppelklick |
| mouseover / mouseout | Maus betritt / verlässt Element |
| keydown / keyup / keypress | Tastatur-Ereignisse |
| submit | Formular wird abgesendet |
| input / change | Eingabe-Feld ändert sich |
| scroll | Seite oder Element wird gescrollt |
| load / DOMContentLoaded | Seite oder Ressource geladen |
| contextmenu | Rechtsklick (Kontextmenü) |
event.preventDefault(), um das Standardverhalten zu unterbinden (z.B. Formular-Submit oder Link-Navigation). Mit event.stopPropagation() verhindern Sie das Bubbling.
Styles verwalten – mit style setzen Sie Inline-Styles, mit className und classList verwalten Sie CSS-Klassen.
background-color) verwenden Sie die CamelCase-Schreibweise in JavaScript: backgroundColor.
querySelector
createElement
textContent
classList
addEventListener
style
document.querySelector("#id") ·
el.textContent = "Text" ·
el.addEventListener("click", () => {})