標籤:
(-1)說明
我用的是chrome49,這個方法涉及到JQuery版本問題,我手裡有3.0的,有1.9.1,後面將1.9.1及其以前的稱為低版本,3.0稱為高版本
測試例子用到的showMessage方法如下
showMessage.i = 0;function showMessage(object){ var body = $("body")[0]; var $p =$("#debugp"); if($p.length==0) { $p = $("<p/>").attr("id","debugp"); $(body).prepend($p); } $p[0].innerHTML += "<br/>"+(showAttribute.i++)+" | "+object;}
(0)$.data(obj,key,value)
key值為字串類型,為數字、對象(var lol={}),是沒有意義的,value值可以為普通類型,當為參考型別時傳遞的是引用而不是複製
a.
var obj = {"name":"寒冰射手","age":"12"};
$.data(obj,"height",165);
showMessage($.data(obj,"height"));
$.data實際將資料放在了對象屬性上,類似於obj.sex="女",無論你通過$.data添加幾個key給obj,在obj只會多出一個類似於jQuery300082932543555993442
300082932543555993442是jQuery產生的隨機數,它指向一個對象,對象裡面通過key-value的形式儲存著你添加的資料
低版本可以通過for-in遍曆出jQuery300082932543555993442,高版本只能通過debug工具查看了
b.
當value是一個對象時,傳遞的是引用
var husband = ["蠻族之王"];
var obj = {"name":"寒冰射手","age":"12"};
$.data(obj,"husband",husband);
$.data(obj,husband)[0] = "遁地龍捲風";
showMessage($.data(obj,husband));//輸出 遁地龍捲風
(2)$(selector).data(key,value)
$("#lol").data("name","寒冰射手");
showMessage($("#lol").data("name"));
$(selector).data將資料繫結在HTML DOM元素上,剩下的特性與$.data方法一樣,不過可以通過for-in得到添加的對象
JQuery data方法的使用-遁地龍捲風