var div1 = $("div"),
     div2 = $("div");

  1、
     div1.data("key", "1");
     div2.data("key", "2");

  alert($.data(div1,"key")); //2
     alert($.data(div2,"key")); //2

  2、
     $.data(div1, "key", "1");
     $.data(div2, "key", "2");
     alert($.data(div1,"key")); //1
     alert($.data(div2,"key")); //2

原因:

jquery源码(1.8.3),摘自$.data()方法

if ( typeof name === "object" || typeof name === "function" ) {
    if ( pvt ) { //此处走elem.data(key,value)的情况
        cache[ id ] = jQuery.extend( cache[ id ], name );
    } else {//此处走$.data(elem,key,value)的情况
        cache[ id ].data = jQuery.extend( cache[ id ].data, name );
    }
}

从源码可以看出,$.data(div1, "key", "1")的方法会根据elem的不同创建不同的对象来进行存储数据, div1.data("key", "1")的方法则替换掉了原来的数据。

随机推荐

  1. HttpGet params not being sent httpget.setParams(params)不好使

    错误的代码 HttpClient httpclient = new DefaultHttpClient(); HttpUriRequest request = new HttpGet(uri); Ht ...

  2. SpringMVC 之类型转换Converter详解转载

    SpringMVC之类型转换Converter详解 本文转载 http://www.tuicool.com/articles/uUjaum 1.1     目录 1.1      目录 1.2     ...

  3. Maven_POM配置结构

    本文转载,转载地址:http://blog.csdn.net/ithomer/article/details/9332071 <project>    <parent>     ...

  4. iOS边练边学--UITabBarController的简单使用

    一.UITabBarController的使用步骤 初始化UITabBarController 设置UIWindow的rootViewController为UITabBarController 根据具 ...

  5. Hibernate基本原理(一)

    在开始学hibernate之前,一直就有人说:Hibernate并不难,无非是对JDBC进一步封装.一句不难,难道是真的不难还是眼高手低? 如果只是停留在使用的层面上,我相信什么技术都不难,看看别人怎 ...

  6. windows宿主机ping不通Docker容器的解决办法

      网卡上有       docker is not a virtual machine, and you don't get access to the docker host via IP add ...

  7. Qt中的串口编程之一

    QtSerialPort 简介 功能介绍 SerialPort SerialPortInfo 源代码 编译和安装 配置编译环境 Perl只是在Qt5的时候才需要Qt4的情况下可以不配置 使用如下推荐步 ...

  8. 关掉firefox(火狐)和palemoon地址栏自动加www.前缀功能【转】

    常用palemoon调试网站域名,它会很“贴心”的给你输入的网址前加上www.前缀,可有些域名前并没有www前缀,这样就导致了无法打开网站,今天学习下关闭它的这个功能. 打开firefox,在地址栏输 ...

  9. 后序线索二叉树中查找结点*p的后继

    在后序线索二叉树中查找结点*p的后继: 1.若结点*p为根,则无后继:2.若结点*p为其双亲的右孩子,则其后继为其双亲:3.若结点*p为其双亲的左孩子,且双亲无右子女,则其后继为其双亲:4.若结点*p ...

  10. RelativeLayout用代码兑现布局

    RelativeLayout用代码实现布局TextView txt1 = new TextView(this);      RelativeLayout.LayoutParams params = n ...