JavaScript/DOM/Element/attributes
Die Eigenschaft Element.attributes speichert die verfügbaren Attribute eines Elements.
Syntax
var attr = element.attributes;
-
attr
: Live Collection aller Attribute. Sie wird verschiedentlich als Array bezeichnet, es handelt aber um eine NamedNodeMap.
Anwendungsbeispiel
function abfrage() {
var anzahl = document.getElementsByTagName('p')[0].attributes.length,
elem = document.getElementById('ergebnis');
elem.textContent = anzahl;
}
Das Beispiel greift mit document.getElementsByTagName('body')[0]
auf das p-Element der Datei zu und ermittelt über die Eigenschaft length
der attributes-NamedNodeMap die Anzahl der Attribute, die in dem Element definiert sind. Im Beispiel ist 2 der Wert von attributes.length,
da im einleitenden <p> Tag zwei Attribute notiert sind.
Über die attributes-NamedNodeMap können Sie auch auf Attribute zugreifen. So liefert beispielsweise document.getElementsByTagName('body')[0].attributes[0].nodeValue
den Wert beispiel
, da attributes[0]
eines der beiden Attribute bezeichnet, und nodeValue den zugehörigen Wert speichert.
attributes
-NamedNodeMap gespeichert sind, ist nicht definiert. Sie können sich nicht darauf verlassen, dass attributes[0]
tatsächlich das erste, im HTML-Code notierte, Attribut ist. Diese Notation ist nur dazu gedacht, einfache Zählschleifen zu erlauben.Da es sich bei attributes
nicht um ein Array, sondern um eine NamedNodeMap
handelt, ist der Zugriff über einen numerischen Index als Option für leichtere Aufzählung vorgesehen. Der Normalfall ist der Zugriff über den Attributnamen.
attributes-NamedNodeMap
sollte möglichst nicht genutzt werden, weil es viele Browser-Inkompatibilitäten gibt. Verwenden Sie die Attribut-Methoden des Elements.Quellen
- ↑ Quirksmode.org: DOM Core attributes
Weblinks
- W3C: DOM Level 3 attributes
- MDN: Element.attributes