我在显示 $.getJSON
的内容时遇到问题称呼。我有这段代码,它从页面检索一些 JSON 数据。
var loadItems = function() {
if (hasNextPage === false) {
return false
}
pageNum = pageNum + 1;
var url = baseUrl + "json/" + pageNum + '/';
var jqxhr = $.getJSON(url, function (data) {
var a = [];
$.each(data.itemList, function (item) {
a.push("<li>" + item.title + "</li>");
});
$("<ul/>", {html: a.join(" ")}).appendTo("#anchor");
});
jqxhr.complete(function () { alert('done!'); $(window).bind('scroll', loadOnScroll); });
};
这个想法只是根据滚动位置动态加载页面,并获取该页面的 JSON 内容(以获得无限滚动效果)。 JSON 结构是这样的:
{ "key1": val1, "key2": val2, "itemList": [ {"title": "title", "author": "author", "id": 100, "slug": slug, }, ... ] }
重要的值位于 itemList 中,我必须在其中检索将插入到我的 django 模板中的数据,而该模板又将从 View 中获取一些数据。一切似乎都工作得很好,除了我无法访问 itemList 中的数据。似乎没有任何东西被插入数组中。因为页面上没有显示任何内容(即应该创建的<li>
)。这似乎是基本 ajax 移动的简单实现,但它不起作用。
编辑:
我做了一些错误跟踪,发现代码从不执行 $.each 循环。但不知道如何解决这个问题。
最佳答案
您应该使用错误日志来检查出了什么问题:并且始终在 $.each
中使用索引、obj 格式以确保安全。
$.getJSON(url).success( function( data ) {
console.log(data);
$.each(data.itemList, function (index, item) {
a.push("<li>" + item.title + "</li>");
});
$("<ul/>", {html: a.join(" ")}).appendTo("#anchor");
}).error(function(error){
console.log(error);// see if you are getting in error log..
});
你的json数据也是错误的,它应该是这样的:
{ "key1": "val1",
"key2": "val2",
"itemList":
[
{
"title": "title", "author": "author", "id": 100, "slug": "slug"
},.......
]
}
尝试使用更正的数据,它会起作用。 您可以在这里查看您的数据:http://json.parser.online.fr/
关于javascript - 无法让 getJSON 显示数组中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27436274/