2015-09-01 50 views
0

我想找出一种方法来更改具有动态名称的JSON对象中的值。如何更新具有动态名称的Json对象

例如在模板中我修改的对象现在看起来看起来像这样:

var optionsPrice_<?php echo $_product->getId() ?> = new Product.OptionsPrice(<?php echo $this->getJsonConfig() ?>); 

我有,因为在页面上的多个产品,使这个变量独一无二的,我们需要单独针对每一个。

optionsPrice.changePrice('config', {'price': price, 'oldPrice': oldPrice}); 

我怎样才能访问动态对象,然后修改它:

这个对象,然后用一个函数中修改?我不想改变大部分的JS来让它工作。

我曾考虑将名称保留为'optionsPrice',然后遍历所有对象并根据它们包含的ID修改正确的名称。尽管这看起来不是很有效。

感谢

回答

1

您可以使用,而不是单个变量的对象:

var optionsPrice = {} 
optionsPrice[<?php echo $_product->getId() ?>] = new Product.OptionsPrice(<?php echo $this->getJsonConfig() ?>); 

然后,你可以参考它为:

console.log(optionsPrice[YOUR_ID_HERE]); 
console.log(optionsPrice["20"]); // Example 
+0

感谢。然而,我现在的问题是因为对象结构已经改变了,现在键包含未定义的值。我可能需要修改现在如何分配这些值以迎合新结构,除非有另一种方式来实现。 – Robert

相关问题