1

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);
});

しかし、何らかの理由でtotalResultsvar が返されてundefinedいます。データを表示しようとしていて、データがないことはわかっていlengthます...しかし、データから長さを表示しようとしているのではなく、長さを使用して結果の総数を取得しようとしています。私は何を間違っていますか?

4

2 に答える 2

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>");
}
于 2013-06-23T21:28:30.323 に答える