jQuery: хранить дополнительные / дополнительные данные / информацию внутри объекта jQuery? - PullRequest
3 голосов
/ 20 июля 2010

Возможно и разумно хранить дополнительные данные внутри объекта jQuery?

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

Например, если вы удаляете объект из DOM, я также должен удалить связанный объект из массива объектов. Удаление довольно просто, но становится немного сложнее, если я начну сортировать / перемещать объекты.

1 Ответ

11 голосов
/ 20 июля 2010

Вы можете использовать $.data() для этого:)

Например:

$.data(element, 'varName', value);      //store
var value = $.data(element, 'varName'); //get

Или использовать метод объекта .data():

$("#ElementID").data('varName', value);      //store
var value = $("#ElementID").data('varName'); //get

Это не хранит данные на объекте, а хранит их в $.cache (попробуйте в консоли на этой странице), но они связаныс объектом, через this[$.expando].

Однако если вы вызовете .empty(), который удаляет объект, или .remove(), он выполнит очисткудля тебя.Вы также можете позвонить .removeData() или $.removeData(), чтобы удалить его напрямую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...