到UL

2015-12-29 51 views
4

我從阿賈克斯獲得JSON數據,並認爲我接近完成這一操作,但由於某些原因,我的UL不填充,我無法找到任何調試信息,以幫助JSON數據。到UL

有人能指出我正確的方向嗎?

json data : 

{"data":[{"racer_id":73,"racing_nbr":"4","entry_id":131}, 
{"racer_id":9,"racing_nbr":"48","entry_id":132}, 
{"racer_id":525,"racing_nbr":"7","entry_id":133}, 
{"racer_id":534,"racing_nbr":"11","entry_id":134}, 
{"racer_id":213,"racing_nbr":"72","entry_id":135}, 
{"racer_id":574,"racing_nbr":"66f","entry_id":136}]} 


$('.list-group-item').click(function() { 
var data = 'class_id='+ $(this).attr('rel') + '&event_id=' +<?php echo $_GET['event_id']; ?> 
// POST to server using $.post or $.ajax 
$.ajax({ 
    data: data, 
    type: 'GET', 
    dataType: 'JSON', 
    url: 'php/builder/getRidersScoringHeats.php', 
    success: function(data) { 
     var obj = data, // get entry object (array) from JSON data 
     ul = $("#sortable");     // create a new ul element 
     // iterate over the array and build the list 
      for (var i = 0, l = obj.length; i < l; ++i) { 
      ul.append("<li class='ui-state-default' id='item-" + obj[i].entry_id + "'>" + obj[i].racing_nbr + " - " + obj[i].racer_id + "</li>"); 
      } 
     $("#sortable").append(ul); // add the list to the DOM 
    } 
}); 
}); 

任何幫助將不勝感激。

在此先感謝。

+0

請進行的jsfiddle。 –

回答

3

在你的情況data實際上包含了一個名爲data對象這是objects數組集合。

因此,要做到這一點很容易:

$.each(data.data, function(i, info){ 
    ul.append("<li class='ui-state-default' id='item-" + info.entry_id + "'>" + info.racing_nbr + " - " + info.racer_id + "</li>"); 
}); 
+0

正是我在找的東西。謝謝!!! – indymx

2

如果data是被分配到obj的對象,那麼你的問題是obj.length不能解析爲任何值。對象沒有length屬性。您需要將數據放在頂層數組中,或者使用像underscore.js這樣的庫來獲取這些數據。

另外,看到這樣的回答:Length of a JavaScript object