我试图找到一种方法来更改具有动态名称的JSON对象中的值。
例如,模板中的修改后的对象现在看起来像这样:
var optionsPrice_<?php echo $_product->getId() ?> = new Product.OptionsPrice(<?php echo $this->getJsonConfig() ?>);
我必须使这个变量独一无二,因为页面上有多个产品,我们需要单独定位每个产品。
然后使用以下函数在函数中修改此对象:
optionsPrice.changePrice('config', {'price': price, 'oldPrice': oldPrice});
如何访问动态对象然后进行修改?我不想改变JS的大部分内容来实现这一点。
我考虑过将名称保留为'optionsPrice',然后遍历所有对象并根据它们包含的ID修改正确的对象。但这似乎不是很有效。
由于
答案 0 :(得分: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