jQuery .data()替换嵌套对象'性能

时间:2011-12-01 13:50:09

标签: javascript jquery

我正在使用jQuery的.data() method来使用嵌套对象存储一些数据,如下所示:

$('div.divwithdata').data('somedata', {
    'a': {
        'b': {
            'c' : {}
        }
    }
});

但是我的问题是:有没有办法在不覆盖整个对象的情况下替换嵌套对象的属性?

我认为可以使用.data('somedata.a.b', 'newdata').data('somedata[a][b]', 'newdata')完成,但这些都没有效果。

jsFiddle example

2 个答案:

答案 0 :(得分:3)

$('div.divwithdata').data('somedata').a = something ...或$('div.divwithdata').data('somedata').a.b.c = "test";

这有效;

答案 1 :(得分:2)

由于data()存储引用,您可以使用其getter form并直接更新它返回的对象:

$("div.divwithdata").data("somedata").a.b = "newdata";

或者,使用括号表示法:

$("div.divwithdata").data("somedata")["a"]["b"] = "newdata";