2011-08-10 72 views
2

我有這樣的代碼:

<script type="text/javascript"> 
     $(document).ready(function() { 
      var url = "https://graph.facebook.com/search?q=cinema&type=post"; 
      $.ajax({ 
       type: "POST", 
       url: url, 
       dataType: "jsonp", 
       success: function(msg){ 
       console.log(msg); 
       $.each(msg.data , function(obj){ 
        $('#cinemas').append(obj.message); 
       }); 
       } 
      }); 
     }); 
    </script> 

然而,未顯示任何內容,任何人都可以點任何明顯問題呢?

感謝

+0

呢'的console.log(味精)'輸出任何東西到控制檯? – jondavidjohn

+0

是的,肯定有返回的數據 – benhowdle89

+0

你想追加什麼? –

回答

2

$.each需要(index, value)

$(document).ready(function() { 
    var url = "https://graph.facebook.com/search?q=cinema&type=post"; 
    $.ajax({ 
     type: "POST", 
     url: url, 
     dataType: "jsonp", 
     success: function(msg){ 
     $.each(msg.data , function(i, obj){ 
       $('#cinemas').append(obj.message); 
     }); 
     } 
    }); 
}); 

http://jsfiddle.net/AlienWebguy/q8b7Q/1/

1

您使用了錯誤的論點$.each

// Use the 2nd argument---------v 
$.each(msg.data , function(i, obj){ 
    $('#cinemas').append(obj.message); 
}); 
+1

這是正確的。順便說一下,這個對象可以通過隱式的'$(this)'變量來獲得......所以你可以有function(){$'cinemas')。append($(this))。信息); });' –

+0

@Java:你不需要在'$()'中包裝'this',因爲它不是DOM元素。 ''('#cinemas')。append(this.message);' –

+0

我不認爲適用於'JQuery.each()',但它確實適用於'.each()',因爲後者從' JQuery.fn'並且會返回它被分配到的DOM節點。 – AlienWebguy

0

您需要添加 callback=?爲 'JSONP' 才能正常工作。

var url = "https://graph.facebook.com/search?q=cinema&type=post&callback=?"; 

編輯:$.each回調function(index, value),所以你需要使用第二個PARAM。

$.each(msg.data , function(i, obj){ 
    $('#cinemas').append(obj.message); 
}); 
+0

沒有。他的作品很好 – AlienWebguy

+0

@AlienWebguy:啊,好像jQuery爲你添加了'callback =?'。 –

+1

它會自動設置'dataType:「jsonp」'。 – AlienWebguy

0

這個工作對我來說:

  var g = 0; 
      $.each(msg, function(key, value) { 
      $('#cinemas').append(msg["data"][g]["message"]); 

      g++; 
     });