Есть ли хороший способ привязать объекты JavaScript к элементам HTML?

Я хочу связать объект JavaScript с элементом HTML. Есть ли простой способ сделать это?

Я заметил HTML DOM определяет метод setAttribute, и похоже, что это определено для произвольного имени атрибута. Однако это может установить только строковые значения. (Вы можете, конечно, использовать это, чтобы хранить ключи в словаре.)

Особенности (хотя меня в основном интересует общий вопрос):

В частности, у меня есть элементы HTML, представляющие узлы в дереве, и я пытаюсь включить drag-and-drop, но событие jQuery drop приведет только к тому, что элементы будут перетаскиваться и удаляться.

Обычный шаблон для получения информации для обработчиков событий, похоже, заключается в создании элементов HTML одновременно с созданием объектов JavaScript, а затем для определения обработчиков событий путем закрытия этих объектов JavaScript - однако это тоже не работает ну в этом случае (у меня мог бы быть глобальный объект, который заселяется, когда начинается перетаскивание... но это кажется немного неприятным).

Ответ 1

Вы просмотрели метод jQuery data()? Вы можете назначить сложные объекты элементу, если хотите, или вы можете использовать этот метод для хранения ссылки на объект (или некоторые другие данные), по крайней мере.

Ответ 2

Объекты JavaScript могут иметь произвольные свойства, назначенные им, нет ничего особенного, чтобы это разрешить. Это включает элементы DOM; хотя это поведение не является частью стандарта DOM, оно вернётся к самым первым версиям JavaScript и является полностью надежным.

var div= document.getElementById('nav');
div.potato= ['lemons', 3];