我试图找出一种方法来更改具有动态名称的JSON对象中的值。

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

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


我必须使此变量唯一,因为页面上有多个产品,我们需要分别定位每个产品。

然后在一个函数中使用以下方法修改该对象:

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


如何访问动态对象,然后对其进行修改?我不想更改很多JS来使其正常工作。

我曾考虑过将名称保留为“ optionsPrice”,然后循环浏览所有对象并根据它们包含的ID修改正确的对象。不过,这似乎不是很有效。

谢谢

最佳答案

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

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

关于javascript - 如何使用动态名称更新Json对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32337280/

10-12 05:13