JavaScript: attribute
von Jan Winkler
Das clientseitige attribute-Objekt besitzt Eigenschaften und Methoden die den Zugriff auf ein Attributknoten erlauben.
Die expando-Eigenschaft liest oder schreibt einen booleschen Wert der beschreibt, ob das Erstellen von eigenmächtigen Variablen erlaubt ist (true) oder nicht (false).
Notation: Objekt.expando
document.expando = false;
document.bgcolor = 'blue';
alert(document.bgcolor);
// gibt in Zeile 2 einen Fehler aus, da 'bgcolor' keine
// Eigenschaft ist sondern 'bgColor' geschrieben wird
document.expando = true;
document.bgcolor = 'blue';
alert(document.bgcolor);
// gibt keinen Fehler aus. Als Wert von 'document.bgcolor'
// wird 'blue' genannt
Die firstChild-Eigenschaft gibt eine Referenz auf den ersten Unterknoten des Objekts (erstes Kind).
Notation: Objekt.firstChild
Kein Beispiel.
Die lastChild-Eigenschaft gibt eine Referenz auf den letzten Unterknoten des Objekts (letztes Kind).
Notation: Objekt.lastChild
Kein Beispiel.
Die name-Eigenschaft setzt oder liest den Namen des Knotens (name-Attribut).
Notation: Objekt.name
<!-- in HTML -->
<div class="alteKlasse" id="meindiv"> ... </div>
/* im Skript */
a = document.meindiv.attributes[0];
if(a.name == 'class'){ a.nodeValue = 'neueKlasse' }
Die nextSibling-Eigenschaft gibt eine Referenz auf den nächsten Geschwisterknoten (nächstes Kind des Elternelements).
Notation: Objekt.nextSibling
<!-- in HTML -->
<div id="meindiv" ...> ... </div>
/* im Skript */
a = document.meindiv.attributes[0];
while(a.nextSibling)
{
a = a.nextSibling;
/* mit a arbeiten */
}
Die nodeName-Eigenschaft gibt den Namen des Knotens an.
Notation: Objekt.nodeName
Kein Beispiel.
Die nodeType-Eigenschaft gibt den Typ des Knotens an. Als Wert wird eine Zahl zurückgegeben: 1 bedeutet Elementknoten und 3 bedeutet Textknoten. 2 ist derzeit noch nicht definiert - es sollte sich dabei allerdings höchst wahrscheinlich um ein Attributknoten handeln. LautDOMsind die Knotentypen wie folgt definiert:
- 1 - Elementknoten
- 2 - Attributknoten
- 3 - Textknoten
- 4 - CDATA-Knoten
- 5 - Entityreferenz
- 6 - Entity
- 7 - Processing Instruction
- 8 - Kommentar-Knoten
- 9 - Dokument-Knoten
- 10 - Dokument Type (DTD)
- 11 - Dokument-Fragment
- 12 - Notation
Notation: Objekt.nodeType
<!-- in HTML -->
<div id="meindiv" ...> ... </div>
/* im Skript */
if(document.meindiv.attributes[0].nodeType != 1 &&
document.meindiv.attributes[0].nodeType != 3)
{ /* bearbeiten */ }
Die nodeValue-Eigenschaft gibt oder setzt den Wert des Knotens wieder.
Notation: Objekt.nodeValue
<!-- in HTML -->
<div class="alteKlasse" id="meindiv"> ... </div>
/* im Skript */
a = document.meindiv.attributes[0];
if(a.name == 'class'){ a.nodeValue = 'neueKlasse' }
Die ownerDocument-Eigenschaft gibt eine Referenz auf das Elterndokument aus.
Notation: Objekt.ownerDocument
<!-- in HTML -->
<body>
<div class="alteKlasse" id="meindiv"> ... </div>
...
</body>
/* im Skript */
a = document.meindiv.ownerDocument; // = body
Die parentNode-Eigenschaft gibt eine Referenz auf den Elternknoten wieder.
Notation: Objekt.parentNode
<!-- in HTML -->
<div id="meindiv" ...> ... </div>
/* im Skript */
a = document.meindiv.attributes[0].parentNode;
// = document.meindiv
Die previousSibling-Eigenschaft gibt eine Referenz auf den vorherigen Geschwisterknoten (vorheriges Kind des Elternelements).
Notation: Objekt.previousSibling
<!-- in HTML -->
<div id="meindiv" ...> ... </div>
/* im Skript */
a = document.meindiv.attributes[1].previousSibling;
// = document.meindiv.attributes[0]
Die specified-Eigenschaft gibt einen booleschen Wert aus, ob ein Attribut definiert wurde (true) (ob ihm also ein Wert zugewiesen wurde) oder ob dies nicht der Fall ist (false) (ob ihm also kein oder lediglich ein Standardwert errechnet wurde).
Notation: Objekt.specified
<!-- in HTML -->
<div id="meindiv" ...> ... </div>
/* im Skript */
if(document.meindiv.attributes[0].specified == true)
{ /* mit dem Attribut arbeiten */ }
Die value-Eigenschaft gibt oder setzt den Wert des Attributes.
Notation: Objekt.value
<!-- in HTML -->
<div class="alteKlasse" id="meindiv" ...> ... </div>
/* im Skript */
document.meindiv.attributes[0].value = 'neueKlasse';
Die appendChild-Methode fügt ein übergebenes Objekt als weiteren Knoten an das Objekt an.
Notation: Objekt1.appendChild(Objekt2)
<!-- in HTML -->
<div id="meindiv" ...> ... </div>
/* im Skript */
a = document.createAttribute('class');
a.value = 'meineKlasse';
document.meindiv. attributes[0].appendChild(a);
Die cloneNode-Methode erstellt ein Abbild des Objekts und gibt dieses zurück. Als optionaler Parameter kann ein boolescher Wert übergeben werden, der beschreibt, ob sämtliche Kind-Objekte mit kopiert werden sollen (true) oder nicht (false / Standard).
Notation: Objekt.cloneNode([Kinder])
a = document.meinelement.attributes[0].cloneNode();
Die hasChildNodes-Methode gibt einen booleschen Wert zurück, der besagt, ob der Knoten Unterknoten besitzt (true) oder nicht (false).
Notation: Objekt.hasChildNodes()
Kein Beispiel.
Die insertBefore-Methode fügt einen neuen Knoten als Unterknoten des Elternelements des Quellobjekts ein. Als Parameter wird dazu das einzufügenden Objekt erwartet. Optional kann als zweiter Wert ebenfalls ein Objekt übergeben werden. Dabei muß es sich um einen Geschwisterknoten des (Quell-)Objekts handeln. Wird dieser zweite Wert angegeben, so wird das einzufügende Objekt direkt vor dem Standort des zweiten Parameters eingefügt.
Notation: Objekt1.insertBefore(Objekt2[,Knoten])
document.meinelement.attributes[0].insertBefore(neuesAttribut);
Die removeChild-Methode entfernt einen Unterknoten des Objekts. Als Wert wird der zu entfernende Knoten erwartet.
Notation: Objekt.removeChild(Knoten)
Kein Beispiel.
Die replaceChild-Methode ersetzt einen Unterknoten durch ein neues Objekt. Als Parameter werden dazu der neu einzusetzende Knoten, sowie der zu ersetzende Unterknoten erwartet (in dieser Reihenfolge).
Notation: Objekt.replaceChild(Quelle,Ersetzen)
Kein Beispiel.