Ich möchte ein JavaScript-Objekt einem HTML-Element zuordnen. Gibt es eine einfache Möglichkeit, dies zu tun?
Ich habe festgestellt, dass HTML DOM eine setAttribute-Methode definiert und anscheinend für einen beliebigen Attributnamen definiert ist. Dies kann jedoch nur Zeichenfolgenwerte festlegen. (Sie können dies natürlich verwenden, um Schlüssel in einem Wörterbuch zu speichern.)
Besonderheiten (obwohl ich hauptsächlich an der allgemeinen Frage interessiert bin):
Insbesondere habe ich HTML-Elemente, die Knoten in einem Baum darstellen, und ich versuche, Drag & Drop zu aktivieren, aber das jQuery-Drop-Ereignis gibt mir nur die Elemente, die gezogen und abgelegt werden.
Das normale Muster zum Abrufen von Informationen an Ereignishandler scheint darin zu bestehen, die HTML-Elemente gleichzeitig mit dem Erstellen von JavaScript-Objekten zu erstellen und dann Ereignishandler durch Schließen über diese JavaScript-Objekte zu definieren. Dies funktioniert jedoch nicht so gut case (Ich könnte ein globales Objekt haben, das gefüllt wird, wenn ein Ziehen beginnt ... aber das fühlt sich etwas böse an).
quelle
data()
Arbeiten durch die Verwendung Antwort bobince gab also , wenn Sie nicht bereits jQuery verwenden, können Sie auch diese verwenden.JavaScript-Objekten können beliebige Eigenschaften zugewiesen werden. Sie müssen nichts Besonderes tun, um dies zuzulassen. Dies schließt DOM-Elemente ein; Obwohl dieses Verhalten nicht Teil des DOM-Standards ist, wurde es bereits in den ersten Versionen von JavaScript verwendet und ist absolut zuverlässig.
quelle
document.expando = false
break jQuery.data nicht auch gesetzt?<td>
) ist und das Objekt, das ich diesem Feld zugewiesen habe, # toString'ed war. Ich war sehr verwirrt, als ich td.scope === '[Objekt Objekt]' sah.