Die Attribute und Eigenschaften von DOM-Elementen werden leicht miteinander verwechselt und können nicht klar unterschieden werden. Es handelt sich um verschiedene Dinge, die jedoch eng miteinander verbunden sind. Viele unerfahrene Freunde, darunter auch ich in der Vergangenheit, sind oft verwirrt.
Attribut wird in chinesische Begriffe als „Merkmale“ übersetzt, und Eigenschaft wird in chinesische Begriffe als „Attribute“ übersetzt. Von der wörtlichen Bedeutung im Chinesischen gibt es tatsächlich einen kleinen Unterschied.
Attribut ist ein Attributknoten, um alle Attributknoten zu speichern. Kurz gesagt, es ist ein Array. wie ein Container, aber es ist nicht derselbe Container wie ein Array. Jeder numerische Attributindex speichert einen Attributknoten in Form eines Name-Wert-Paares (name="value").
Aber IE6-7 speichert viele Dinge in Attributen und die obige Zugriffsmethode liefert andere Ergebnisse als der Standardbrowser. Um einen Attributknoten zu erhalten, verwenden Sie normalerweise direkt die getAttribute-Methode:
Um einen Attributknoten festzulegen, verwenden Sie die setAttribute-Methode. Um ihn zu löschen, verwenden Sie removeAttribute:
Attribute werden dynamisch aktualisiert, wenn Attributknoten hinzugefügt oder gelöscht werden.
Eigenschaft ist eine Eigenschaft. Wenn das DOM-Element als gewöhnliches Objektobjekt betrachtet wird, ist Eigenschaft eine Eigenschaft, die im Objekt in Form eines Name-Wert-Paares (name="Wert") gespeichert ist. Es ist viel einfacher, Eigenschaften hinzuzufügen und zu löschen, nicht anders als bei gewöhnlichen Objekten:
Der Grund, warum Attribute und Eigenschaften leicht miteinander verwechselt werden, liegt darin, dass viele Attributknoten auch ein entsprechendes Eigenschaftsattribut haben. Beispielsweise sind die ID und die Klasse des obigen div-Elements sowohl Attribute als auch entsprechende Eigenschaften, unabhängig davon, welches verwendet wird . Auf Methoden kann zugegriffen und diese geändert werden.
Bei benutzerdefinierten Attributknoten oder benutzerdefinierten Eigenschaften haben die beiden jedoch nichts miteinander zu tun.
Für IE6-7 gibt es keine Unterscheidung zwischen Attribut und Eigenschaft:
Viele unerfahrene Freunde könnten leicht in diese Grube fallen.
Einige standardmäßige gemeinsame Attributknoten von DOM-Elementen verfügen über entsprechende Eigenschaftsattribute. Einige Eigenschaften haben einen booleschen Typ, z. B. einige Formularelemente:
Für diese speziellen Attributknoten ist der entsprechende Eigenschaftswert wahr, solange der Knoten vorhanden ist, wie zum Beispiel:
Um Attribut und Eigenschaft besser unterscheiden zu können, lässt sich abschließend grundsätzlich zusammenfassen, dass Attributknoten im HTML-Code sichtbar sind, während Eigenschaft nur ein gewöhnliches Name-Wert-Paar-Attribut ist.