Toutes les données sont stockées dans une propriété de l'objet jQuery
nommé cache
. Consignez le contenu de $.cache
dans votre console pour voir toutes les données et tous les événements associés à un élément DOM.
La manière dont jQuery lie un objet DOM à un objet de ce cache consiste à manipuler l'objet DOM. Disons que nous avons un élément d'entrée
<input type="text" value="hello" />
qui a une clé de données nommée "foo"
$(e).data("foo", "bar");
Maintenant jQuery maintient une chaîne aléatoire de la forme jQuery<current time in ms>
, par exemple, jQuery1291790929680
, qui est également accessible par $.expando
. jQuery ajoute cette chaîne expando en tant que clé à chaque objet DOM contenant un élément de données ou un événement associé. Ainsi, l'objet DOM pour l'élément d'entrée ci-dessus contiendra cette expando clé avec une valeur entière telle que:
jQuery1291790929680: 4
4 est juste un exemple au hasard, mais ce nombre désigne un index dans l'objet $.cache
, où les données associées et les événements pour cet objet DOM sont stockés. Donc, étant donné ces informations, pour récupérer les données de l'élément d'entrée ci-dessus, nous pouvons écrire indirectement:
$.cache[4]["foo"]
qui devrait retourner « bar », ce qui est une manière indirecte de l'écriture $(e).data("foo")
.
Un illustrated example du non-sens ci-dessus :)
il est stocké sur le côté client uniquement, j'utilisais des données jquery et jquery données méta plugins retrive les données et ne jamais couru dans un problème – kobe