Hallo,
Kann man Javascript-Objekte in einem DOM-Element ablegen?
Ja, man kann einfach neue Eigenschaften erzeugen. Das ist eine Grundfunktionalität von JavaScript-Objekten, und bei DOM-Knoten ist das nicht abgeschaltet (d.h. sie sind »extensible«).
element.foo = {…};
Allerdings bringt es seine eigenen Fallstricke mit, DOM-Knoten mit eigenen JavaScript-Objekten zu verknüpfen und Arbeitsdaten an DOM-Knoten zu speichern. DOM-Land und JavaScript-Land sind hinsichtlich des Speichers getrennt und haben eigene Methoden der Speicherbereinigung (Garbage Collection). Wenn man im DOM Referenzen auf JavaScript-Objekte erzeugt, so verhindert man, dass die Objekte abgebaut werden, solange das Element existiert.
Das ist kein Drama, man muss nur daran denken, diese Referenzen beim Abbauen der Objekte zu entfernen. In älteren Browsern war das noch ein absolute No-Go, weil es Speicherlecks erzeugt hat, heute dürfte die Situation entspannter sein. Trotzdem würde ich dazu raten, die Zuordnung im JavaScript-Land zu speichern.
Grüße,
Mathias