eine andere Schreibweise für 0.002. Der Dezimalpunkt wird um so viele Stellen nach links verschoben, wie hinter dem e -Zeichen angegeben. Diese umgekehrte Richtung wird durch das Minuszeichen bewirkt, das hinter dem e folgt. 10.3.2 DOM-Scripting – Zugriff auf Webseiteninhalte Das Document Object Model (DOM) ist eine vom W3-Konsortium verabschiedete Norm, die den Programmiersprachen-Zugriff auf beliebige Elemente eines Auszeichnungssprachen-Dokuments beschreibt. Das DOM ist also weder selber eine Programmiersprache, noch ist es auf HTML beschränkt. Es definiert lediglich Objekte, Eigenschaften und Methoden, die eine Program-miersprache umsetzen sollte, wenn sie sich als DOM-fähig bezeichnen will. Anwendbar sollen diese Objekte, Eigenschaften und Methoden auf alle Dokumente sein, die in einer XML-gerechten Auszeichnungssprache geschrieben sind. Die JavaScript-Interpreter moderner Browser haben das DOM des W3-Konsortiums implementiert. Ähnlich wie bei anderen Sprachen ist der Implementierungsfortschritt dabei unterschiedlich. Die Grundlagen, welche in diesem Abschnitt vorgestellt werden, funktionieren jedoch in allen heute verbreiteten Browsern. Das Anwenden des DOM in JavaScript wird auch als DOM-Scripting bezeichnet. 10.3.3 Markupstruktur und Knoten Eine Auszeichnungssprache wie HTML oder auch jede andere, XML-basierte Sprache ist als hierarchische Baumstruktur abbildbar. Die einzelnen Bestandteile einer solchen Baumstruktur werden als Knoten bezeichnet. Es gibt verschiedene Knotentypen. Innerhalb eines gewöhnlichen HTML-Dokuments gibt es auf jeden Fall drei wichtige Knotentypen, die Sie unterscheiden müssen: Elementknoten, Attributknoten und Textknoten. Betrachten Sie zum Verständnis das folgende einfache HTML-Konstrukt:
Hallo Welt
In diesem Konstrukt gibt es einen Elementknoten, nämlich den Elementknoten des h1 -Elements. Ferner gibt es einen Attributknoten, nämlich den des lang -Attributs. Und schließlich gibt es Inhalte, die an zwei Stellen vorkommen: nämlich einmal der Inhalt des h1 -Elements, und einmal der Inhalt der Wertzuweisung an das lang -Attribut. Diese Inhalte stellen selbst Knoten dar, nämlich Textknoten. Ein weiteres Beispiel
Hallo Welt
In diesem Beispiel ist die em -Auszeichnung um das Wort Welt hinzugekommen. Wichtig ist dabei zu verstehen, wie die Knotenhierarchie aussieht: Das h1 -Element ist in diesem kleinen Strukturbaum-Ausschnitt der Ausgangsknoten. Dieser Knoten hat nach den Regeln des DOM zwei Kindknoten und einen assoziierten Knoten: Die Kindknoten sind zum einen der Textknoten mit dem Wort Hallo und dem Leerzeichen dahinter sowie der Elementknoten des em -Elements. Das lang -Attribut im einleitenden
-Tag ist dagegen kein Kindknoten, sondern ein assoziierter Knoten. Der Attributknoten hat jedoch selbst wiederum einen Kindknoten, nämlich den zugewiesenen Wert ( de ). Auch der Elementknoten des em -Elements hat wieder einen Kindknoten, nämlich den Textknoten seines Zeicheninhalts, also das Wort Welt . Bild 10.5: Darstellung des Beispiels als Baumstruktur Die Baumstruktur einer komplexen Web-Seite kann, wie sich aus diesen einfachen Beispielen erschließt, sehr umfangreich und tief verschachtelt sein. In einer Script-Sprache muss es aber möglich sein, möglichst schnell und effizient auf einzelne Knoten zugreifen zu können. Im DOM gibt es daher einige wichtige Methoden, um auf jeden beliebigen Elementknoten direkt zugreifen zu können: • document.getElementById() liefert ein ganz bestimmtes Element als Objekt. Anwendbar auf Elemente, die ein id -Attribut haben (so lässt sich z. B. auf
…
mit document.getElementById("Anlesertext") zugreifen). • document.getElementsByName() liefert einen Array (eine Kette aus mehreren) Elementen als Objekte. Anwendbar auf Elemente, die ein name -Attribut haben (z. B. lässt sich auf
mit document.getElementByName ("Vorname") zugreifen). • document.getElementsByTagName() liefert einen Array (eine Kette aus mehreren Elementen) als Objekte. Anwendbar auf alle Elemente. Es werden alle Elemente mit einem bestimmten Elementnamen gefunden, z. B. alle a -Elemente mit document. • getElementsByTagName("a") . Auf die einzelnen Elemente kann dann in Form eines 0-basierten Arrays zugegriffen werden. So greift document.getElementsByTagName ("a")[0] beispielsweise auf das erste a -Element im Dokument