0

我有 2 个 javascript 对象,一个包含当前值,另一个包含需要替换的值的键。

var values = {'instance': {'body' : {'background': '000000'}}};

var replace = {'scope':'instance', 'item':'body', 'property': 'background'};

var newValue = 'FFFFFF';

Values[replace.scope][replace.item][replace.property] = newValue;

如上所示,我可以“硬编码”替换,但有没有办法使用“替换”对象的映射/循环动态创建替换,因为多维对象的深度可能会有所不同?

4

1 回答 1

0

假设关于修改样式的示例是一个示例(否则我会建议您使用 jQuery 来修改样式):

你可以这样做:

values.instance.body.background = newValue;

因此,如果替换实例按原样定义并且它甚至可以更深入,那么在这种情况下,您可以执行以下操作:

 var path = "";
 for(i = 0; i < replace.length; i++) {
    path += "." + replace[i];
 }
 eval(path + " = " + "'" + newValue + "'"); 
 //resulting in "values.instance.body.background = newValue" being executed;

干杯!

于 2012-09-28T11:52:40.137 回答