我正在使用jQuery来发出JSON数据请求。它根据搜索查询返回项目。我要做的就是返回要在页面上显示的结果数。
以下是搜索返回success
时我正在做的事情:
if(data){
var totalResults = data.length;
}
$('ul.list-posts').before('<p>'+totalResults+' results for '+searchQuery+'</p>');
$.each(data.items, function (i, data) {
var question_list = '<li><a data-qid="' + data.question_id + '"><span class=meta><b class=upvote>' + data.up_vote_count + ' Up</b><b class=downvote>' + data.down_vote_count + ' Down</b></span>' + data.title + '</a></li>';
$('ul.list-posts').append(question_list);
});
但由于某种原因,totalResults
var正在返回undefined
。我知道它正在尝试显示数据并且没有length
的数据......但我不是试图从数据中显示长度,我正在尝试使用长度来获得结果总数。我究竟做错了什么?
答案 0 :(得分:2)
您确定data
是有效对象吗?你不是在寻找if(data){ var totalResults = data.items.length; }
吗?
您的each
是否正常工作?
您还应该将each
包裹在if
内并使用else
if(data){
var totalResults = data.length;
$('ul.list-posts').before('<p>'+totalResults+' results for '+searchQuery+'</p>');
$.each(data.items, function (i, data) {
var question_list = '<li><a data-qid="' + data.question_id + '"><span class=meta><b class=upvote>' + data.up_vote_count + ' Up</b><b class=downvote>' + data.down_vote_count + ' Down</b></span>' + data.title + '</a></li>';
$('ul.list-posts').append(question_list);
});
} else {
$('ul.list-posts').html("<li>I wasn't able to retrieve data</li>");
}
答案 1 :(得分:0)
可能数据是空的,首先尝试查看是否有任何对象。