Vous semblez avoir obtenu la réponse à l'endroit où, mais ici, c'est un peu sur le comment.
Il y a quelques règles que vous devez connaître avant d'utiliser ce.
L'AJOUT d'
L'ajout de variables à l'aide de l'objet retourné à partir de $('.sélecteur').de données() fonctionne parce que l'objet de données passe par référence, de sorte que n'importe où vous ajoutez une propriété, il est ajouté. Si vous appelez de données() sur un autre élément, c'est changé. C'est ce que c'est ce qu'il est...
var oData = $('#id').data();
oData.num = 0;
oData.num == $('#id').data().num; // true
L'ajout d'un objet endroits un objet à l'intérieur de l'objet de données, ainsi que "étend les données précédemment stockées avec cet élément." - http://api.jquery.com/data/#entry-longdesc
Cela signifie que l'ajout d'un obj de dataObj devient
oData.obj = {};
oData === { /*previous data*/, obj : { } }
L'ajout d'un tableau n'est pas d'étendre les données précédemment stockées, mais ne se comportent pas de la même chose qu'une simple valeur, soit...
À l'AIDE de
Si vous avez de simples valeurs stockées, vous pouvez les placer dans des variables et de faire ce que vous voulez avec eux, sans modification de l'objet de données.
cependant
si vous utilisez un objet ou un tableau pour stocker les données sur un élément, méfiez-vous!
Juste parce que vous le stocker dans une variable ne signifie pas que vous ne modifiez pas les données de la valeur.
Juste parce que vous passez à une fonction ne signifie pas que vous ne modifiez pas les valeurs de données!
C'est ce que c'est ce qu'il est.. sauf si c'est simple.. alors c'est juste une copie. :p
var data = $("#id").data(); // Get a reference to the data object
data.r_redirect = "index.php"; // Add a string value
data.num = 0; // Add a integer value
data.arr = [0,1,2]; // Add an array
data.obj = { a : "b" }; // Add an object
// but here is where the fun starts!
var r_redirectString = data.r_redirect; // returns "index.php", as expected.. cool
r_redirectString = "changed" // change the value and the compare :
data.r_redirect == r_redirectString // returns false, the values are different
var oArr = data.arr; // Now lets copy this array
oArr.push(3); // and modify it.
data.arr == oArr // should be false? Nope. returns true.
// arrays are passed by reference.
// but..
var oObj = data.obj // what about objects?
oObj["key"] = "value"; // modify the variable and
data.obj["key"] == oObj["key"] // it returns true, too!
Ainsi, les ressources..
Quelle est la meilleure façon de stocker plusieurs valeurs pour jQuery $.de données()?
http://stackoverflow.com/a/5759883/1257652