在返回来自ajax调用的数据后,我正在调用下面的函数。它执行第一个console.log(),其中包含来自ajax调用的数据。但是循环遍历的each()循环 - 不响应console.log。
primaSaveOrder.prototype = {
start: function(response){
console.log(response)
$j('#primaId').val('');
$j('#dialog').closest('.ui-dialog-content').dialog('close');
$j.each(response['billing'], function(i, val) {
console.log(response['billing'][i])
});
},
}
我不认为我的代码太错了,因为如果我在控制台中手动创建一个等于 - console.log(response)输出的变量然后运行 -
$j.each(response['billing'], function(i, val) {
console.log(response['billing'][i])
});
它有效。我希望运行的是$j('#' + i).val(response['billing'][i])
而不是console.log(response['billing'][i]
。
如果我直接在浏览器中而不是在文件中这样做,这也有效。我认为这是相关的,但我无法弄清楚如何解决它。
这是我正在迭代一些为隐私而改变的数据的例子
{"billing":{"order-billing_address_firstname":"test","order-billing_address_lastname":"test","order-billing_address_street0":"6 test","order-billing_address_street1":"test","order-billing_address_city":"","order-billing_address_country_id":"GB","order-billing_address_region":"","order-billing_address_postcode":"16","order-billing_address_telephone":"","order-billing_address_vat_id":"","order-billing_address_prima_address_code":"0"},"shipping":{"order-shipping_address_firstname":"test","order-shipping_address_lastname":"test","order-shipping_address_street0":"6 test","order-shipping_address_street1":"test","order-shipping_address_city":"","order-shipping_address_country_id":"GB","order-shipping_address_region":"","order-shipping_address_postcode":"16","order-shipping_address_telephone":"","order-shipping_address_vat_id":"","order-shipping_address_prima_address_code":"0"}}
答案 0 :(得分:1)
可能是String的响应类型。在这种情况下,使用
将响应转换为jsonresponse = JSON.parse(response);
在使用迭代响应之前。
答案 1 :(得分:0)
我不会说,这会有所帮助,但有几件事情应该检查问题根目录:
console.log(i, $j('#' + i).size())
可以做到这一点。我相信可能没有设定价值的元素。val
参数,而不是通过response['billing'][i]
引用它。虽然我不知道如何覆盖或隐藏response
var,但让我们直接使用该值,因为它已经传递回调。