Как делает jQuery .data () работа?

Я хочу использовать .data() в моем приложении. Примеры полезны, но я не понимаю однако, где значения хранятся.

Я осматриваю веб-страницу с Firebug и как только .data () сохраняет объект к dom элементу, я не вижу изменения в Firebug (ни один HTML или Dom вкладки).

Я пытался посмотреть на источник jQuery, но это очень усовершенствовано для моего знания JavaScript, и я потерял меня.

Таким образом, вопрос:

Где делают значения, сохраненные jQuery.data () на самом деле, идут? Я могу осмотреть/определить местоположение/перечислить/отладить их использующий инструмент?

54
задан Brian Tompsett - 汤莱恩 5 November 2015 в 06:59
поделиться

2 ответа

Взгляните на исходник для этого.

При беглом взгляде кажется, что он хранит данные в переменной cache, которая создается в строке 2.

Edit:

Вот быстрая демонстрация, которая находит данные в кэше: http://jsfiddle.net/CnET9/

Вы также можете сбросить $.cache в консоль и исследовать его вручную.

40
ответ дан 7 November 2019 в 08:10
поделиться

Вы можете проверить это, просто вызвав .data () без параметров, например:

$("div").data("thing", "value");​​​​​​
console.log($("div").data());
//or...
console.log($.data($("div").get(0)));

Что касается «где» , он хранится в глобальном объекте кеша jQuery под ключом, который представляет ваш элемент. Вызов .data () действительно возвращает jQuery.data (yourDomElement) , или добавляйте ключ к нему, если вы вызывали из него конкретное значение.

4
ответ дан 7 November 2019 в 08:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: