问答详情
源自:4-7 静态接口设计

$.data(dom,key,value) 不会覆盖的问题?

/*1:jQuery.data(element,[key],[value]),每一个element都会有自己的一个{key:value}对象保存着数据,所以新建的对象就算有key相同它也不会覆盖原来存在的对象key所对应的value,因为新对象保存是在另一个{key:value}对象中*/

var dom  = $(“div”);

$.data(dom,‘1’,‘111’);

$.data(dom,‘2’,‘222’);

所以这样子是新建一个dom?

提问者:全爬树 2016-01-21 12:55

个回答

  • weixin_慕粉8264621
    2019-04-28 20:59:04

    $.data()方式绑定到js对象上(a,b)。而  var a = $("#div") ,  b = $("#div")中a与b是不同的。所以即使同一dom对象的不同js对象添加相同属性当然也是不同的

  • chen87870098
    2017-01-16 10:08:04

    这样只是新建了对一个匹配对象的一个引用

  • carlleton
    2016-02-18 14:25:56

    我的理解是这样:

    新的变量,对应新的cache对象。$.data()针对的是变量对应的cache对象

    dom.data()操作的是元素本身对应的cache对象,所以会有覆盖

  • 慕标5011930
    2016-02-17 13:44:07

    新建一个变量,变量的名字叫做dom