我显然错过了一个简单的步骤,试图用$ .each自学$ .ajax。我只是在本地运行。没什么好看的,只是想了解一些新的概念。
我有一个.json文件,我使用带有2个对象的$ .ajax检索数组。
如果我在.json文件中只有一个对象,我可以得到我想要的回报没问题。但是,如果我添加第二个对象,并尝试使用$ .each来浏览文件,我的程序会跳转到我的代码的.fail()部分。
我的.json文件和我的$ .ajax代码如下。 提前谢谢。
[
{
"id": 1,
"name" : "James",
"drink" : "Coffee"
},
{
"id": 2,
"name" : "Joey",
"drink" : "Diet Coke"
},
];
js code:
$(document).ready(function() {
var $orders = $('#orders');
$.ajax({
url: "data/orders.json",
type: 'GET',
dataType: 'json'
})
.done(
function(data) {
$.each(data, function(i, item) {
$orders.append('<li>Name: ' + data.name + ', ' + data.drink + '</li>');
});
}
)
.fail(
function() {
alert("Failure");
}
);
});
答案 0 :(得分:3)
[
{
"id": 1,
"name" : "James",
"drink" : "Coffee"
},
{
"id": 2,
"name" : "Joey",
"drink" : "Diet Coke"
}, <-- remove this comma
]; <-- remove this ';' also
你也需要写
$orders.append('<li>Name: ' + data[i].name + ', ' + data[i].drink + '</li>');
因为data
是整个数组,所以要通过data[i]
访问您需要执行的任何项目。其实,
data[i]
和item
是等效的。
或
$orders.append('<li>Name: ' + item.name + ', ' + item.drink + '</li>');