📚
Lerndokumentationen
Web
Web
  • Willkommen
  • HTML
    • Was ist HTML?
    • Elemente
    • Attribute
    • Boilerplate
  • Textelemente
  • Links
  • Dokumentenstruktur
  • Medien
  • Tabellen
  • Formulare
  • CSS
    • Was ist CSS?
    • Syntax
  • Einheiten
  • Selektoren
  • Boxmodell
  • Hintergründe und Rahmen
  • Overflow
  • Bilder
  • Formulare
  • Textelemente
  • Layout
    • Flexbox
    • Grid
  • Responsive Design
  • JavaScript
    • Was ist JavaScript?
    • Einbindung in HTML
    • Grundlagen
      • Variablen und Werte
      • Datentypen
      • Operatoren und Ausdrücke
      • Kontrollstrukturen
      • Schleifen
    • Funktionen
      • Funktionsdeklarationen vs. Funktionsausdrücke
      • Arrow Functions
      • Standardparameter und Rest-Parameter
      • First-Class und Higher-Order-Funktionen
      • Closures
      • IIFE (Immediately Invoked Function Expressions)
    • Arrays
      • Erstellen und Modifizieren
      • Iteration über Arrays
      • Sortieren
      • Nützliche Methoden
    • Objekte und Datenstrukturen
      • Erstellen und Manipulieren
      • Destructuring
      • Sets und Maps
    • Strings
      • Template Literals
      • Methoden
    • Moderne JavaScript-Features
      • Optionale Verkettung
      • Nullish Coalescing Operator
      • Spread und Rest Operator
      • Kurzschlussausdrücke
    • Scope und Kontext
      • this Keyword
      • Call, Apply und Bind
      • Hoisting und Temporal Dead Zone (TDZ)
    • Objektorientierte Programmierung
      • Prototypes
      • Constructor Functions
      • ES6 Classes
      • Die create()-Methode
    • Asynchronous JavaScript
      • AJAX
      • Promises
    • Zahlen, Daten, Internationalisierung und Timer
      • Mathematische Operationen
      • Datum und Zeit
      • Internationalisierung
      • Timer
    • Modules
    • JavaScript im Browser (DOM und Events)
      • Das DOM
      • Elemente auswählen, erstellen und manipulieren
      • Styles, Attribute und Klassen
      • Events und Event Listener
      • Event Propagation
        • Event Delegation
      • DOM Traversing
    • JavaScript Engine und Performance
      • Execution Context und Call Stack
  • TypeScript
    • Was ist TypeScript?
  • Compiler und Runtimes
  • Konfiguration
  • Types
    • Primitive Typen und Typableitung
    • Arrays und Tupel
    • Objekte
    • Top- und Bottom-Types
    • Enums
    • Utility Types
      • Records
  • Typenkombination
    • Union Types
    • Discriminated Unions
    • Intersections
  • Funktionen
  • Klassen
    • Grundlagen
    • Feldinitialisierer
    • Schreibgeschützte Felder
    • Implementieren
    • Private und Geschützte Member
    • Getter und Setter
    • Statische Member
    • Abstrakte Klassen und Member
  • Modules
    • Importieren und Exportieren
    • Ambient Types
    • Namespaces
    • Globals
  • React
    • Was ist React?
    • JSX
    • Komponenten
      • Root-Komponente
      • Styling
      • Listen
      • Conditional Rendering
      • Fragments
    • Props
      • Destructuring
      • Children
    • Interaktivität
      • Event Handling
      • State
      • Formulare
    • State Management
      • State anheben
      • Derived State
    • Komposition und Reusability
      • Komponentenstrukturierung
      • Prop Drilling
      • Komposition
Bereitgestellt von GitBook
Auf dieser Seite
  • Die DOM-API
  • Node
  • Element
  • Text
  • Comment
  • Document
  • EventTarget
  1. JavaScript
  2. JavaScript im Browser (DOM und Events)

Das DOM

VorherigeJavaScript im Browser (DOM und Events)NächsteElemente auswählen, erstellen und manipulieren

Zuletzt aktualisiert vor 3 Monaten

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

Jeder Node im DOM-Tree ist vom Typ Node und beinhaltet unteranderem folgende Properties und Methoden:

  • textContent

  • childNodes

  • parentNode

  • cloneNode()

  • ...

Der Node-Typ hat einige Child-Typen sozusagen: Element, Text, Comment und Document.

Element

Der 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:

  • innerHTML

  • classList

  • children

  • parentElement

  • append()

  • 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

Den 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

Auch Kommentare von unserem HTML-Dokument werden als Node dargestellt, als Comment: <!--Comment-->

Document

Der Typ Document ist ein sehr wichtiger Typ der unteranderem folgende Methoden enthält:

  • querySelector()

  • createElement()

  • getElementById()

  • ...

EventTarget

Weiter über dem Typ Node steht der Typ EventTarget mit den Methoden addEventListener() und removeEventListener().

Alle Methoden und Properties werden vererbt, so hat z.B. ein HTMLFormElement Zugriff auf die Methode cloneNode() vom Typ Node.

Das DOM
DOM-API