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

jQuery .data() replace nested objects' properties

本文关键字:属性 对象 嵌套 data 替换 jQuery      更新时间:2023-09-26

我使用jQuery的.data()方法来存储一些使用嵌套对象的数据,像这样:

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

然而,我的问题是:是否有一种方法来替换嵌套对象的属性而不覆盖整个对象?

我认为可以用.data('somedata.a.b', 'newdata').data('somedata[a][b]', 'newdata')来完成,但它们都不起作用。

jsFiddle示例

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

这作品;

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

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

或者,使用括号符号:

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