Das Document Object Model (DOM) ist die Programmierschnittstelle, über die JavaScript den Inhalt einer Webseite liest und verändert. Der Browser baut aus dem geladenen HTML einen Baum aus Knoten auf: Jedes Element, jeder Text und jedes Attribut wird zu einem Knoten.

Die Baumstruktur

Oben im Baum steht das document-Objekt. Darunter folgen <html>, <head> und <body> und dann alle verschachtelten Elemente. Eltern- und Kindknoten bilden die Hierarchie ab:

document
└─ html
   ├─ head
   │  └─ title
   └─ body
      ├─ h1
      └─ p

Elemente finden und ändern

Mit Methoden des document-Objekts greift man auf einzelne Knoten zu:

// Element finden
const ueberschrift = document.getElementById('titel');
const buttons = document.querySelectorAll('button');

// Inhalt ändern
ueberschrift.textContent = 'Neuer Titel';

// Neues Element erzeugen und anhängen
const p = document.createElement('p');
p.textContent = 'Hallo DOM';
document.body.appendChild(p);

Über Ereignis-Listener reagiert das Skript auf Nutzeraktionen wie Klicks, Tastatur oder Formulareingaben: button.addEventListener('click', ...).

DOM und CSS

Auch das Styling läuft über das DOM: CSS-Klassen werden per classList.add() gesetzt, Inline-Stile über die style-Eigenschaft. So lassen sich Oberflächen dynamisch umgestalten – die Grundlage jeder SPA.

Virtuelles DOM

Frameworks wie React und Vue arbeiten zusätzlich mit einem virtuellen DOM: Sie berechnen Änderungen erst in einem internen Abbild und übertragen danach nur die tatsächlich betroffenen Knoten in das echte DOM. Das macht viele kleine Updates schneller.

Verwandte Grundlagen: HTML, CSS, XML, Frontend, AJAX.