我看过类似的帖子,但我没有找到以这种格式循环键值对数组的示例:
{
"quotes": [
{
"author": "Author One",
"quote": "Quote One"
},
{
"author": "Author Two",
"quote": "Quote Two"
},
{
"author": "Author Three",
"quote": "Quote Three"
}
]
}
我不确定为什么这段代码不起作用,即当我尝试迭代从Ajax调用返回的JSON数据时,我无法引用JSON文件中的命名数组,如data.quotes
。如何在Ajax调用返回的数据中循环引号数组
var QUOTE = {
container: '#quote',
url: 'quotes.json',
load: function() {
var _quote = this;
$.ajax({
type:"get",
url: this.url,
success: function(data){
$.each(data.quotes, function(i, val) {
console.log(i, val);
});
}
});
这似乎应该可行,但我a is undefined
来电$.each()
。
感谢您的帮助,
Ĵ
答案 0 :(得分:3)
代码似乎没有错。 val.author
和val.quote
应该包含您的期望。
没有名为a
的变量,那么该错误来自哪里?
我的猜测是数据不是您所期望的。请尝试console.log(data);
查看是否正确。
检查它是字符串还是对象。您可能需要data = $.parseJSON(data)
将字符串转换为数据结构。