Das DOM
Die Abkürzung DOM steht für Document Object Model, die strukturierte Darstellung von HTML-Dokumenten. Es ermöglicht JavaScript den Zugriff auf HTML-Elemente und Stile, um sie zu manipulieren.
Wir können zum Beispiel Text, HTML-Attribute und sogar CSS-Stile ändern. Es ist im Grunde ein Verbindungspunkt zwischen HTML-Dokumenten und JavaScript-Code.
Das DOM wird automatisch vom Browser erzeugt, sobald die HTML-Seite geladen wird, und ist in einer Baumstruktur gespeichert:

Das DOM sieht ein bisschen aus wie ein Stammbaum. Deshalb verwenden wir ständig die Begriffe Kind-Element, Eltern-Element, Geschwister-Element usw., wenn wir über das DOM sprechen.
Das DOM beginnt immer mit dem document-Objekt ganz oben. Das document-Objekt ist ein spezielles Objekt, auf das wir in JavaScript Zugriff haben. Dieses Objekt dient als Einstiegspunkt in das DOM. Das document-Objekt hat viele Methoden, um die Knoten des DOM auszuwählen.
Das DOM ist also das Interface zwischen unserem JavaScript Code und dem Browser bzw. den Elementen darin.
Erlaubt uns, dass JavaScript mit dem Browser interagieren kann
Wir können JavaScript schreiben um:
HTML-Elemente zu erstellen, zu bearbeiten und zu löschen
Styles, Klassen und Attribute zu setzen
Events abzuwarten und darauf zu reagieren
Der DOM-Tree wird von einem HTML-Dokument erstellt, mit welchem wir interagieren können
DOM ist eine extrem komplexe API, welche viele Methoden und Eigenschaften beinhaltet, um mit dem DOM-Tree zu interagieren
Die DOM-API

Node
NodeJeder Node im DOM-Tree ist vom Typ Node und beinhaltet unteranderem folgende Properties und Methoden:
textContentchildNodesparentNodecloneNode()...
Der Node-Typ hat einige Child-Typen sozusagen: Element, Text, Comment und Document.
Element
ElementDer Typ Element hat jedes HTML-Element auf unserer Seite, so z.B. das <p></p>-Tag oder <form></form>.
Dieser Typ hat Zugriff auf extrem viele praktische Properties und Methoden:
innerHTMLclassListchildrenparentElementappend()remove()insertAdjacentHTML()querySelector()closest()matches()scrollIntoView()setAttribute()...
Der Element-Typ hat intern noch ein HTMLElement mit noch weiteren Elementen, wie z.B. HTMLButtonElement oder HTMLDivElement
Text
TextDen Text-Typ gibt es immer, wenn es Text auf der Seite hat, z.B. <p>Paragraph</p> wobei aber nur der Text selber und nicht das Element, also hier <p> zählt.
Comment
CommentAuch Kommentare von unserem HTML-Dokument werden als Node dargestellt, als Comment: <!--Comment-->
Document
DocumentDer Typ Document ist ein sehr wichtiger Typ der unteranderem folgende Methoden enthält:
querySelector()createElement()getElementById()...
EventTarget
EventTargetWeiter über dem Typ Node steht der Typ EventTarget mit den Methoden addEventListener() und removeEventListener().
Last updated