<!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个数据,所以单独存在,互不影响。