【问题标题】:JSON Data to ULJSON 数据到 UL
【发布时间】:2016-04-02 22:08:25
【问题描述】:

我正在从 ajax 获取 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
  }
 });
});

任何帮助将不胜感激。

提前致谢。

【问题讨论】:

  • 请做一个jsfiddle。

标签: php jquery mysql json


【解决方案1】:

在您的情况下,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>");
});

【讨论】:

    【解决方案2】:

    如果data 是分配给obj 的对象,那么您的问题是obj.length 无法解析为任何值。对象没有 length 属性。您需要将数据放在顶层数组中,或者使用像 underscore.js 这样的库来获得这样做的能力。

    或者,请参阅此答案:Length of a JavaScript object

    【讨论】:

      猜你喜欢
      • 2020-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-25
      • 2018-08-16
      • 2015-09-25
      • 1970-01-01
      相关资源
      最近更新 更多