Mat*_*att 40
看看它的来源.
从快速的一瞥看,它看起来像是将数据存储cache在第2行创建的变量中.
编辑:
这是一个快速演示,可以在缓存中找到数据:http://jsfiddle.net/CnET9/
您也可以转储$.cache到控制台并手动浏览它.
你似乎已经得到了答案,但这里有一点如何.在使用之前,您应该注意一些规则.
ADDING
使用从$('.selector')返回的对象添加变量.data()的工作原理是因为数据对象通过引用传递,所以在添加属性的任何地方都会添加它.如果在另一个元素上调用data(),它就会被更改.它就是它的本质......
var oData = $('#id').data();
oData.num = 0;
oData.num == $('#id').data().num; // true
Run Code Online (Sandbox Code Playgroud)
添加对象会将对象放置在数据对象内部,以及"扩展先前使用该元素存储的数据".- http://api.jquery.com/data/#entry-longdesc
这意味着向dataObj添加obj变为
oData.obj = {};    
oData === { /*previous data*/, obj : { } }
Run Code Online (Sandbox Code Playgroud)
添加数组不会扩展先前存储的数据,但不会像简单值那样表现...
使用
如果存储了简单值,则可以将它们放入变量中,并在不更改数据对象的情况下使用它们执行所需操作.
然而
如果您使用对象或数组在元素上存储数据,请注意!
仅仅因为你将它存储到变量并不意味着你没有改变数据值.仅仅因为你将它传递给函数并不意味着你没有改变数据值!
它就是它的本质..除非它很简单..那它只是一个副本.: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!
Run Code Online (Sandbox Code Playgroud)
所以,资源..
为jQuery的$ .data()存储多个值的最佳方法是什么? /sf/answers/403191841/
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           14857 次  |  
        
|   最近记录:  |