5. Interaktion mit dem Benutzer: Javascript im Browser
5.3 Das Document Object Model (DOM) navigieren
In diesem Abschnitt erkunden wir den DOM-Baum und lernen, ihn zu navigieren.
Sagen wir, unser HTML-Dokument enthält ein Element
<table class="table-striped" id="student-grades-table">.
In Javascript gibt es mehrere Möglichkeiten, es zu "fangen".
document.getElementById("student-grades-table"); die ID sollte eindeutig im ganzen Dokument sein
document.getElementByClassName("table-striped"); gibt eine HTML-Collection zurück, weil es ja mehrere geben könnte
document.getElementByTagName("table"); gibt eine HTML-Collection zurück, weil es ja mehrere geben könnte
Alternativ können Sie die Funktion document.querySelector(...) verwenden. Als
Argument
über geben Sie (als String) einen Selektor, ähnlich wie in CSS. Der Rückgabewert ist
das erste Element, auf das der Selektor zutrifft; das macht Sinn, weil
Sie vielleicht oft wissen, dass es nur eins gibt, auf das der Selektor zutrifft. Mit
document.querySelector(...) erhalten Sie eine Liste aller, auf die es
zutrifft.
document.querySelector("#student-grades-table");
document.querySelector(".table-striped");
document.querySelector("table");
Sie können Selektoren auch komibinieren, so wie in CSS:
document.querySelectorAll("div, p") gibt Ihnen eine Liste
aller div- und p-Elemente;
document.querySelectorAll("div.poem") gibt Ihnen
div-Elemente, die Klasse poem haben, also
z.B. per <div class='poem'> definiert wurden.
Wenn Sie ein DOM-Objekt haben, also zum Beispiel per
let myTable = document.querySelector("#student-grades-table");
dann können Sie per
myTable.children oder myTable.childNodes auf die
Kind-Element zugreifen.
Mit myTable.parentElement können Sie auf das Eltern-Element im DOM-Baum
zugreifen.
myTable.children und myTable.childNodes.
<p><input type="submit" value="display DOM-tree" class="dom-tree-visualizer"></p>
<pre class="dom-tree-visualizer"></pre>
<script src="domTreeToString.js"></script>
Das Ergebnis sollte ungefähr so aussehen: