Zugriff

Zugriff auf DOM-Objekte

Im DOM sind alle HTML-Elemente einer Webseite als Objekte in einer Baumstruktur definiert. Auf diese Objekte kann mit Hilfe von Skriptsprachen wie JavaScript zugegriffen werden. Dazu gibt es in JavaScript folgende Methoden:

  • getElementById(): Zugriff über das „id“-Attribut
  • getElementsByTagName(): Zugriff über den HTML-Element-Bezeichner (z. B. „p“)
  • getElementsByClassName(): Zugriff über das „class“-Attribut
  • getElementsByName(): Zugriff über das „name“-Attribut
  • querySelectorAll(): Zugriff über CSS-Selektoren

Zugriff mit „getElementById()“

Mit der Methode „getElementById()“ kann über das „id“-Attribut des HTML-Elements auf ein HTML-Element zugegriffen werden. Die Methode gibt dabei nur genau ein Element zurück. Eine ID sollte auf einer Webseite immer eindeutig sein, weshalb auch immer nur ein Element mit dieser Methode angesprochen werden kann. Sollte eine ID trotzdem mehrfach vergeben werden, gibt die Methode das erste gefundene Element mit dieser ID zurück:

HTML-Datei:

Ergebnis:

Beispiel 1

Text im Absatzelement!

Zugriff mit „getElementsByTagName()“

Die Methode „getElementsByTagName()“ gibt eine Liste der HTML-Elemente zurück, die dem in der Klammern angegebenen Element-Typ entsprechen. Die zurückgegebene Liste entspricht einem Feld, auf dessen Elemente über einen Index zugegriffen werden kann. Wird in der Klammer ein Stern („*“) angegeben, so werden alle Elemente des DOM zurückgegeben:

HTML-Datei:

HTML-Datei:

Ergebnis:

Beispiel 2

H4-Überschrift

H5-Überschrift

H4-Überschrift

H5-Überschrift

Zugriff mit „getElementsByClassName()“

Die Methode „getElementsByClassName()“ gibt eine Liste der HTML-Elemente zurück, deren „class“-Attribut den in der Klammer angegebenen Wert hat. Die zurückgegebene Liste entspricht einem Feld, auf dessen Elemente über einen Index zugegriffen werden kann. Soll nach mehreren Klassen gesucht werden, so werden die einzelnen Klassen in der Klammer durch Komma getrennt angegeben. Sollen mehrere Klassen gleichzeitig zutreffen, werden die Klassen durch Leerzeichen getrennt angegeben:

HTML-Datei:

Ergebnis:

Beispiel 3

Absatz mit class-Attribut

H6-Überschrift mit class-Attribut

Absatz OHNE class-Attribut

H6-Überschrift OHNE class-Attribut

Zugriff mit „getElementsByName()“

Die Methode „getElementsByName()“ gibt eine Liste der HTML-Elemente zurück, deren „name“-Attribut den in der Klammer angegebenen Wert hat. Die zurückgegebene Liste entspricht einem Feld, auf dessen Elemente über einen Index zugegriffen werden kann:

HTML-Datei:

Ergebnis:

Beispiel 4

Unterkunft

Haus Wohnung

Haustiere

Hund Katze Vogel

Zugriff mit „querySelectorAll()“

Die Methode „querySelectorAll()“ gibt eine Liste der HTML-Elemente zurück, für die eine bestimmter CSS-Selektor gilt. Das kann ein Klasse, eine ID oder ein HTML-Element-Typ sein, aber auch Kombinationen daraus. Die zurückgegebene Liste entspricht einem Feld, auf dessen Elemente über einen Index zugegriffen werden kann:

HTML-Datei:

Ergebnis:

Beispiel 5

Absatz mit class-Attribut

Absatz OHNE class-Attribut

Wurzel-Objekte

Mit speziellen DOM-Objekten, den Wurzel-Objekten, kann auf den gesamten Inhalt einer Webseite zugegriffen werden:

  • document.body: Der gesamte Inhalt innerhalb des „body“-Elements
  • document.documentElement: Der gesamte Inhalt innerhalb des „html“-Elements

HTML-Datei:

Ergebnis:

Beispiel 6


Abschlussübung

Als Abschlussübung kannst du folgendes Beispiel erstellen, bei dem die Hintergrundfarbe auf grün wechselt, wenn alle Felder ausgefüllt wurden. Mit „Felder zurücksetzen“ werden alle Felder zurückgesetzt und die Hintergrundfarbe wieder auf rot gesetzt:

Personaldaten

Vorname:
Nachname:
Alter:
Geschlecht: Weiblich
Männlich

Gehe dabei wie folgt vor:

  • Erstelle ein „div“-Element als Container für alle anderen Elementen
  • Verwende beim „div“-Element das „class“-Attribut
  • Erstelle ein „style“-Element, in dem die Hintergrundfarbe des „div“-Elements auf ein helles rot gesetzt wird (rgb(255,160,150))
  • Erstelle alle „input“-Elemente des Formulars
  • Verwende bei den drei Eingabefeldern das „id“-Attribut
  • Verwende bei den Radio-Button das „name“-Attribut
  • Gebe allen „input“-Elementen das Ereignis „onclick“ und verweise damit auf eine Funktion
  • Ermittele in der Funkion alle Eingabewerte
  • Erstelle eine „if“-Anweisung, mit der die Hintergrundfarbe des „div“-Elements auf grün gesetzt wird, wenn alle Felder gesetzt sind, ansonsten auf rot
  • Erstelle eine Funktion zum Zurücksetzen aller „input“-Elemente
  • Setze in der Funktion die drei „input“-Elemente auf eine leere Zeichenkette und die Radio-Button auf „.checked = false“
  • Setze in der zweiten Funktion noch die Hintergrundfarbe des „div“-Elements auf rot

Die Lösung kannst du dir hier herunterladen:

Download
Access7.html
HTML Dokument 1.7 KB

Quellen