关于$.data(element,key,value)与ele.data.(key,value)的区别


<!doctype html>
<html>
<head>
<meta charset="utf-8">   
<title>测试代码</title>
<script src="../jQuery.js"></script>
</head>
<body>
<div id="test1">test1</div>   
<div id="test2">test2</div>   
</body> 
<script> 
var a=$("div");   
var b=$("div");//a不等于b。   

$("#test1").click(function(){      
//首先使用data(key,value)用法。   
$(a).data("a","1");//分别在a和b上保存Key一样的数据,   
$(b).data("a","2");// 看它是否会覆盖前面的,虽然是保存在不同对象上。   
alert($(a).data("a"));//你猜到答案了吗,这里输出的是2;是不是有点意外?     
alert($(b).data("a"));//这里也是2; 
alert("a是否等于b");
alert(a===b);   //false
 });  

//使用jQuery.data(element,key,value)来存放数据。 
$("#test2").click(function(){ 
$.data(a,"b","3");//分别在a和b上保存Key一样的数据,   
$.data(b,"b","4");// 看它是否会覆盖前面的,虽然是保存在不同对象上。   
alert($.data(a,"b"));//应该你能猜答案吧,输出3   
alert($.data(b,"b"));//这输出4    
}) ;  
</script> 
</html>

这里我个人是按指针理解的,data(key,value)时,a与b公用指针“a”,指向同一数据,所以会覆盖。而data(element,key,value)时,虽然指针名是一样的,但分别隶属于a与b,是两个不同的指针,指向2个数据,所以单独存在,互不影响。

原文地址:https://www.cnblogs.com/keepStudying/p/6184654.html