Quero associar um objeto JavaScript a um elemento HTML. Existe uma maneira simples de fazer isso?
Percebi que o HTML DOM define um método setAttribute e parece que isso é definido para um nome de atributo arbitrário. No entanto, isso só pode definir valores de string. (Você pode, obviamente, usar isso para armazenar as chaves em um dicionário.)
Especificidades (embora eu esteja mais interessado na questão geral):
Especificamente, tenho elementos HTML que representam nós em uma árvore e estou tentando habilitar arrastar e soltar, mas o evento de soltar do jQuery só me dará os elementos que estão sendo arrastados e soltos.
O padrão normal para obter informações para manipuladores de eventos parece ser criar os elementos HTML ao mesmo tempo que você está criando objetos JavaScript e, em seguida, definir os manipuladores de eventos fechando esses objetos JavaScript - no entanto, isso não funciona muito bem neste caso (eu poderia ter um objeto global que é preenchido quando um arrasto começa ... mas isso parece um pouco desagradável).
fonte
data()
funciona usando a resposta que bobince deu, então se você ainda não estiver usando jquery, você também pode usar isso.Os objetos JavaScript podem ter propriedades arbitrárias atribuídas a eles, não há nada especial que você precise fazer para permitir isso. Isso inclui elementos DOM; embora esse comportamento não faça parte do padrão DOM, é o caso desde as primeiras versões do JavaScript e é totalmente confiável.
fonte
document.expando = false
quebra ?<td>
) e o objeto que atribuí a este campo era # toString'ed. Fiquei muito confuso ao ver td.scope === '[Object Object]'.