【问题标题】:API data returned, using array to display data using JQueryAPI数据返回,使用数组显示数据使用JQuery
【发布时间】:2018-06-02 18:03:13
【问题描述】:

我已经启动了一个小型 API 项目,但目前处于僵局中,请大家帮忙。

连接工作正常,我可以通过 console.log(data) 返回预期的内容。我现在要做的是分离返回数据。数据的一个例子是“id”:19,“code”:21,“type”,zone。我尝试了各种方法来分隔 indexelement,正如我所说的那样,但无法让它发挥作用。任何帮助将不胜感激。

    $.ajax(connect).done(function(data) {
        $.each([data], function(index, element){
            $('#AJAXresponse').html('<ul>' + index + ' : ' + element +  '</ul>');
        });
   });

【问题讨论】:

  • 请提供完整或准确的字符串 json,它是从 api 响应收到的 json 字符串周围的括号和方括号有很大的不同
  • {"id":19,"location":"005100","nlc":"0051","name":"ZONE 1*","location_type":"Zone","国家":null,"crs":null,"created_at":"2017-12-13 22:32:14","updated_at":"2017-12-13 22:32:14","deleted_at":null }
  • 首先,如果您打印'&lt;ul&gt;' + index + ' : ' + element + '&lt;/ul&gt;',那就不好了,因为缺少&lt;li&gt;...
  • AJAXresponse 相关的 ID 在
  • 标签内。我可以让 JSON 显示在
      标记中,问题是,我想要更多地控制数据。我不希望显示所有内容,并且我希望显示的内容与接收方式不同。希望这是有道理的:)
  • 标签: jquery arrays json ajax api


    【解决方案1】:

    几个问题。

    首先不要将data 包裹在[] 中。如果您将对象传递给$.each,它将遍历所有键,如果您传递一个数组,它将遍历数组

    然后不要在循环中使用html(),因为它会在循环的每次迭代中替换现有元素,只留下最后一个元素

    最后你不能在不使用&lt;li&gt;的情况下直接将文本放在&lt;ul&gt;

    试试

    $.ajax(connect).done(function(data) {
      var $ul = $('<ul></ul>');
      $.each(data, function(key, value) {
        $ul.append('<li>' + key + ' : ' + value + '</li>');
      });
      $('#AJAXresponse').html($ul);
    
    });
    

    【讨论】:

    • 太棒了!我花了几个小时研究试图让它工作,谢谢!我能否对此进行改进并将每个 $.each 添加到变量中,以便以后可以访问它们?有点像索引数组,以便我可以选择我想要显示的内容?
    • 无需添加到变量中,只要知道属性名就可以随时访问对象的每个属性
    • 这可以让我再次获得我的第一个初级开发角色,谢谢:) :)
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签