Im DOM werden alle HTML-Elemente eines HTML-Dokuments als Objekte dargestellt und in einer Baumstruktur angeordnet. Dabei werden übergeordnete Objekte als „Eltern-Objekte“, untergeordnete Objekte als „Kind-Objekte“ und Objekte auf gleicher Ebene als „Geschwister- Objekte“ bezeichnet. Mit folgenden Eigenschaften kann in dieser Baumstruktur zum Vorgänger, zu Nachfolgern oder auf gleicher Ebene navigiert werden:
Mit der Eigenschaft „parentNode“ kann in der Baumstruktur des DOM das übergeordnete DOM-Objekt ausgegeben werden:
HTML-Datei:
Ergebnis:
Absatzelement Span-Element
Mit der Eigenschaft „parentElement“ kann in der Baumstruktur des DOM das übergeordnete HTML-Element ausgegeben werden:
HTML-Datei:
Ergebnis:
Absatzelement Span-Element
Mit der Eigenschaft „childNodes“ können in der Baumstruktur des DOM alle untergeordneten DOM-Objekte eines Objekts ausgegeben werden. Dabei werden auch alle Zeilenumbrücke, Leerzeichen und HTML-Kommentare als Objekte ausgegeben. Die zurückgegebene Liste entspricht einem Feld, auf dessen Elemente über einen Index zugegriffen werden kann:
HTML-Datei:
Ergebnis:
Absatzelement Span-Element
Mit der Eigenschaft „children“ können in der Baumstruktur des DOM alle untergeordneten HTML-Elemente eines Objekts ausgegeben werden. Im Gegensatz zur Eigenschaft „childNodes“ werden mit „children“ nur untergeordnete Elemente vom Typ „HTML-Element“ („nodeType“ = 1) ausgegeben. Die zurückgegebene Liste entspricht einem Feld, auf dessen Elemente über einen Index zugegriffen werden kann:
HTML-Datei:
Ergebnis:
Absatzelement Span-Element
Mit der Eigenschaft „firstChild“ kann in der Baumstruktur des DOM das erste untergeordnete und mit „lastChild“ das letzte untergeordnete Objekt ausgegeben werden. Dabei werden auch Zeilenumbrücke, Leerzeichen und HTML-Kommentare als Objekte ausgegeben, wenn diese an erster bzw. letzter Stelle sind:
HTML-Datei:
Ergebnis:
Erstes Absatzelement Erstes Span-Element
Zweites Absatzelement Zweites Span-Element
Drittes Absatzelement Drittes Span-Element
Hinweis: Im Beispiel wird als erstes und letztes untergeordnetes Element der Zeilenumbruch als „#text“-Element ausgegeben!
Mit der Eigenschaft „firstElementChild“ kann in der Baumstruktur des DOM das erste untergeordnete und mit „lastElementChild“ das letzte untergeordnete HTML-Element ausgegeben werden. Im Gegensatz zu den Eigenschaften „firstChild“ und „lastChild“ werden mit nur untergeordnete Elemente vom Typ „HTML-Element“ („nodeType“ = 1) ausgegeben:
HTML-Datei:
Ergebnis:
Erstes Absatzelement Erstes Span-Element
Zweites Absatzelement Zweites Span-Element
Drittes Absatzelement Drittes Span-Element
Mit der Eigenschaft „previousSibling“ kann das vorhergehende Geschwister-Objekt und mit „nextSibling“ das nachfolgende Geschwister-Objekt auf gleicher Ebene in der Baumstruktur des DOM ausgegeben werden. Dabei werden auch Zeilenumbrücke, Leerzeichen und HTML-Kommentare als Objekte ausgegeben:
HTML-Datei:
Ergebnis:
Erstes Absatzelement Erstes Span-Element
Zweites Absatzelement Zweites Span-Element
Drittes Absatzelement Drittes Span-Element
Mit der Eigenschaft „previousElementSibling“ kann das vorhergehende Geschwister-HTML-Element und mit „nextSibling“ das nachfolgende Geschwister-HTML-Element auf gleicher Ebene in der Baumstruktur des DOM ausgegeben werden. Im Gegensatz zu den Eigenschaften „previousSibling“ und „nextSibling“ werden mit nur untergeordnete Elemente vom Typ „HTML-Element“ („nodeType“ = 1) ausgegeben:
HTML-Datei:
Ergebnis:
Erstes Absatzelement Erstes Span-Element
Zweites Absatzelement Zweites Span-Element
Drittes Absatzelement Drittes Span-Element
Mit der Methode „hasChildNodes()“ kann ermittelt werden, ob ein Objekt Kind-Objekte hat oder nicht. Die Methode gibt „true“ aus, wenn das Objekt Kind-Objekte hat, ansonsten „false“:
HTML-Datei:
Ergebnis:
Absatzelement Span-Element
Als Abschlussübung kannst du folgendes kleines Spiel erstellen, bei dem mit den DOM-Objekt-Eigenschaften durch drei Ebenen navigiert werden kann. Wird eine Eigenschaft gewählt, die an der entsprechenden Stelle nicht möglich ist, erscheint ein Dialog mit „Game Over!“:
Ebene 2 - Absatz 1
Ebene 2 - Absatz 2 Ebene 3 - Span 1 Ebene 3 - Span 2
Ebene 2 - Absatz 3
Gehe dabei wie folgt vor:
Die Lösung kannst du dir hier herunterladen: