我想从 JSON 数组中获取数据,如下所示,因此 this.responceText
返回此数据。我尝试使用 Javascript 代码中的数据,但它不起作用,而且也没有错误消息。我的代码哪里错了?谢谢。
{"0":{"folder":"callofthewild","title":"Call of the Wild"},"1":{"folder":"2001spaceodyssey","title":"2001: A Space Odyssey "},"2":{"folder":"hobbit","title":"The Hobbit"},"4":{"folder":"pokemon","title":"I Choose You! (Pokemon Chapter Books)"},"5":{"folder":"alannathefirstadventure","title":"Alanna: The First Adventure (Song of the Lioness #1)"}}
我的 JavaScript 的一部分;
var books = JSON.parse(this.responseText);
for (var i = 0; i < books.length; i++) {
var book = document.createElement("div");
var text = document.createElement("p");
var image = document.createElement("img");
image.src = "books/" + books.i.folder + "/cover.jpg";
text.innerHTML = books.i.title;
book.appendChild(image);
book.appendChild(text);
document.getElementById("allbooks").appendChild(book);
}
最佳答案
由于您的 JSON 是一个对象(而不是数组),因此您可以使用 Object.keys()获取其所有键,然后迭代其键以获取适当的值:
var books = JSON.parse(this.responseText);
Object.keys(books).forEach(function (index) {
var book = books[index];
var div = document.createElement("div");
var text = document.createElement("p");
var image = document.createElement("img");
image.src = 'books/' + book.folder + '/cover.jpg';
text.innerHTML = book.title;
div.appendChild(image);
div.appendChild(text);
document.getElementById('allbooks').appendChild(div);
});
关于javascript - 如何创建 for 循环以从 JSON 数组中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44103945/