我正在使用jQuery的.data()
method来使用嵌套对象存储一些数据,如下所示:
$('div.divwithdata').data('somedata', {
'a': {
'b': {
'c' : {}
}
}
});
但是我的问题是:有没有办法在不覆盖整个对象的情况下替换嵌套对象的属性?
我认为可以使用.data('somedata.a.b', 'newdata')
或.data('somedata[a][b]', 'newdata')
完成,但这些都没有效果。
答案 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";