2012-01-30 8 views
0

私はJSONPファイルをプルするAJAXコールを持っていますが、コンソールにデータを渡しますが、結果を配列に入れようとすると、エラーが発生します:topicsjquery各関数は結果を与えていませんか?

$.ajax({ 
     type: 'GET', 
     url: 'http://demo.omnigon.com/christian_bovine/nbapulse/json/all.json', 
     dataType : 'jsonp', 
     jsonp : "callback", 
    jsonpCallback: "onDataLoaded", 

     success : function(data) { 
      console.log(data); 
      var topics = []; 

      $.each(data, function(i, item){ 
       topics.push({ 
        username: item.TopicName, 
        mentions: item.LastHourCount, 
        totalcount: item.TotalCount, 
        daycount: item.LastHourCount 
       }); 
      }); 
      console.log(topics); 
     $('#leader').tmpl(topics).appendTo('#top3'); 
     } 

    }); 

私は$.each(data.results, function(i, item)を使用している場合、それは私のjQueryのテンプレートが表示されますが、すべてのデータがundefinedになります。だから問題はそれと関係があると思いますか?

+1

*何を取得していますか?応答はJSON ** P **に有効ですか? –

+1

console.log(data)はjsonpから欲しいデータをすべて私に渡しますので、有効です – Xtian

+2

'console.log(data)'の出力を投稿できますか? – Jasper

答えて

2
$.each(data.data, function(i, item){ 

これはトリックを行う必要があり、あなたのオブジェクトは、次のようになります。

{ 
    data : [ 
     {}, 
     {}, 
     ... 
    ] 
} 

ですから、結果を反復処理する前にdataプロパティを選択する必要がありました。ここで

はデモです:http://jsfiddle.net/YrJXG/

+0

それです!ありがとうございました – Xtian

+0

ようこそ。 – Jasper

0

あなたの$ .eachは次のようになります。

$.each(data.data, function(i, item){ 
        topics.push({ 
         username: item.TopicName, 
         mentions: item.LastHourCount, 
         totalcount: item.TotalCount, 
         daycount: item.LastHourCount 
        }); 
       }); 

その "data.data" ない "データを" 注意してください。

関連する問題