2013-06-23 1 views
1

JSON 데이터 요청을 만들기 위해 jQuery를 사용하고 있습니다. 검색 쿼리를 기반으로 항목을 반환합니다. 내가하려는 것은 페이지에 표시 할 결과 # 개를 반환하는 것입니다.총 JSON 요청 수를 할당하려고합니다.

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을 반환 : 검색이 success 반환 할 때

는 여기에 내가 뭘하는지입니다. 나는 데이터를 표시하려고 노력하고 있으며 데이터가 없다는 것을 알고 있습니다. length ...하지만 데이터의 길이를 표시하려고하지는 않습니다. 길이를 사용하여 총 결과 수를 얻으려고합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

+0

응답과 아약스 코드를 살펴 보겠습니다. – Musa

+0

방화 광에서'data'는 무엇을 보여줍니까? 그것의 가치를 볼 수 있습니까? – Jason

+0

이 문제를 해결할 수는 없지만, 실제로 가져온 API가 데이터의 총 결과 값을 반환한다는 것을 알았습니다! 모두에게 감사드립니다. –

답변

2

data은 유효한 개체입니까? if(data){ var totalResults = data.items.length; }을 찾고 계시지 않습니까?

each이 다른 경우 제대로 작동합니까?

당신은 또한 if 내부 each을 포장하고 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>"); 
} 
0

로 대체를 만들어야합니다 아마 데이터 비어, 거기에 모든 개체가 있는지 먼저하려고합니다.

관련 문제