兩個方法很相似,但是有區別,簡單說一下:
$.data():jq的靜態方法,也就是jQuery.data()直接調用
$().data():實例方法,先有實例,才能調用這個方法,例如:$("#id").data("name","zhangsan")
區別:
通過例子說下:
var div1 = $("#d1");
var div2 = $("#d1");
$.data(div1, "name", "zhangsan");
$.data(div2, "name", "lisi");
document.write($.data(div1).name);//zhangsan
document.write($.data(div2).name);//zhangsan
div1.data("name", "zhangsan");
div2.data("name", "lisi");
document.write(div1.data("name"));//lisi
document.write(div2.data("name"));//lisi
順便說一下他們定義的來源,$.extend(),$.fn.extend();這篇文章講的不錯,大家可以看一下http://caibaojian.com/jquery-extend-and-jquery-fn-extend.html
$.extend():增加全局函數、對象,相當於給jQuery這個類增加了靜態方法
$.fn.extend():這個是對jQuery.prototype進得擴展(原來 jQuery.fn = jQuery.prototype),就是爲jQuery類添加“成員函數”
ok,進入正題,先來看靜態方法:$.data();
舉幾個例子:
$.data($("#id"),"name","zhangsan");
$.data({},"name","zhangsan");
$.data({},{"name",function(){}});