2012-11-26 25 views
0

我的JSON數據看起來財產以後這樣
[{"id":"299","calendar_id":"49","event_date":"2012-11-27","event_start":"2012-11-27 00:39:00","event_end":"2012-11-27 00:39:00","title":"description goes here","description":"","planned":"0","type_class":"General","type_data":"{\"frequency_type\":\"1\",\"frequency_x\":null,\"type\":\"14\",\"status\":\"23\"}" Ajax請求從警予JSON獲取數據通過jQuery的

$.ajax({ 
     url: "<?php echo $this->createUrl('path/to/file')?>", 
     dataType: 'json', 
     cache: false, 
     success: function(data) { 
      var out = "<span>"; 
      $(data).each(function(){ 
       out += this.title; 
      }); 
      out += "</span>"; 
      unplannedList.html(out); 
      } 
var unplannedList = $('.col ul li'); 

這正是我需要追加我的數據,該數據顯示在頂部的列表。 'this'或'data'不起作用。從我粘貼的警報中獲取數據的正確方法是什麼?

回答

2

不知道,如果你想使每一個單獨的跨度。還是把所有的標題爲一個跨度。但在這裏它是如何應該使用$.each()功能

var out = ''; 
$.each(data,function(k,v){ // <-- using the callback arguments 
    out += '<span>'+v.title+'</span>'; 
}); 

FIDDLE

+0

你的小提琴完美,但不是我的代碼。如果我嘗試提醒$ .each(data,function(k,v){alert('in');}中的數據,它不會提醒任何事情。 alert。奇怪 –

+0

做一個console.log(數據)每個以外,看看你是否收到一個JavaScript對象..然後做一個console.log(V),以確保你得到每個函數內的每個對象 –

+0

console.log(數據)理想情況下應該顯示在螢火蟲控制檯窗口中的數據權?沒有什麼顯示在那裏,'>>>' –

0

您不能以您嘗試的方式訪問該對象。您需要參考該流動對象才能訪問您的。試試這樣的:

var self=this; 

並在你自己的回調工作。

+0

你能否解釋你的答案? –

+0

我認爲你的* this *在另一個範圍內,所以* this *不是你期待的* this *。如果您製作*本地副本*,您可以確定其含義不會改變。 – rekire

0

相反的$(data).each(...),試試這個:

$.each(data, function() { 
    out += this.title; 
}); 
+0

那裏沒有運氣。還是一樣。它不會將任何東西放在列表中 –

+0

然後,類似於以下答案的評論,請檢查您的json源URL。正在返回數據嗎?或者你可能遇到404或500錯誤? – Johann