Im DOM werden alle HTML-Elemente eines HTML-Dokuments als Objekte dargestellt und in einer Baumstruktur angeordnet. Über die DOM-Objekte kann auch auf die Attribute der HTML-Elemente zugegriffen werden. Dabei gibt es verschiedene Möglichkeiten auf die Attribute von HTML-Elementen über das DOM zuzugreifen:
Folgende HTML-Element-Attribute können über DOM-Objekte direkt ausgelesen und gesetzt werden:
HTML-Datei:
Ergebnis:
DOM-Objekte verfügen über ein Attribut-Objekt, das eine Liste aller Attribute des korrespondierenden HTML-Elements enthält. Auf die einzelnen Attribute kann dann mit Hilfe eines Index zugegriffen werden. Die Eigenschaft „length“ gibt die Anzahl der Attribute in der Liste wieder. Mit den Eigenschaften „name“ und „value“ kann auf den Namen und den Wert des entsprechenden Attributs zugegriffen werden:
HTML-Datei:
Ergebnis:
Mit der Methode „getAttribute(‚attr‘)“ kann der Wert des in der Klammer angegebenen HTML-Element-Attributs ausgelesen werden. Mit der Methode „setAttribute(‚attr‘, ‚wert‘)“ kann der Wert des in der Klammer angegebenen HTML-Element-Attributs auf den in der Klammer angegebenen Wert gesetzt werden:
HTML-Datei:
Ergebnis:
Mit den Methoden „getAttributeNode()“ und „setAttributeNode()“ können HTML-Element-Attribute über das Attribut-Objekt des korrespondierenden DOM-Objekts ausgelesen und angepasst werden. Bei der Methode „getAttributeNode()“ wird ein Attribut-Objekt zurück-gegeben, dessen Wert dann mit der Eigenschaft „value“ ausgelesen werden kann. Bei der Methode „setAttributeNode()“ muss zuerst mit „document.createAttribute(‚attr‘)“ ein Attribut-Objekt erstellt werden, dessen Wert dann mit der Eigenschaft „value“ gesetzt werden kann:
HTML-Datei:
Ergebnis:
Mit der Methode „hasAttribute(‚attr‘)“ kann geprüft werden, ob ein Objekt ein bestimmtes Attribut hat. Mit der Methode „hasAttributes()“ kann geprüft werden, ob ein Objekt überhaupt Attribute hat:
HTML-Datei:
Ergebnis:
Mit der Methode „removeNamedItem(‚attr‘)“ des Attribut-Objekts kann ein bestimmtes Attribut aus der Attribut-Liste entfernt werden. Mit der Methode „removeAttributeNode()“ kann ein bestimmtes Attribut von einem Element entfernt werden:
HTML-Datei:
Ergebnis:
Als Abschlussübung kannst du folgendes Beispiel erstellen, bei dem über das „class“-Attribut zwischen einem Style mit schwarzem Text und weißem Hintergrund und einem Style mit weißem Text und schwarzem Hintergrund gewechselt werden kann. Wird auf einen einzelnen Absatz geklickt, ändert sich nur der Style des Absatzelements. Wird der Button „Invertieren“ verwendet, wechselt der Style von allen Absatzelementen:
Absatz 1
Absatz 2
Absatz 3
Gehe dabei wie folgt vor:
Die Lösung kannst du dir hier herunterladen: