老生常谈JQuery data方法的使用
(-1)说明
我用的是chrome49,这个方法涉及到JQuery版本问题,我手里有3.0的,有1.9.1,后面将1.9.1及其以前的称为低版本,3.0称为高版本
测试例子用到的showMessage方法如下
showMessage.i=0; functionshowMessage(object) { varbody=$("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值为字符串类型,为数字、对象(varlol={}),是没有意义的,value值可以为普通类型,当为引用类型时传递的是引用而不是克隆
a.
varobj={"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是一个对象时,传递的是引用
varhusband=["蛮族之王"];
varobj={"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将数据绑定在HTMLDOM元素上,剩下的特性与$.data方法一样,不过可以通过for-in得到添加的对象
以上这篇老生常谈JQuerydata方法的使用就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。