【问题标题】:Jquery appending undefinedJquery附加未定义
【发布时间】:2016-07-28 22:55:30
【问题描述】:

我在附加 json 时遇到问题。它打印了多个未定义,我不确定原因是什么。

我的代码:

  $("button").click(function() {
    $.getJSON("https://api.myjson.com/bins/503aj", function(obj) {
      $.each(obj, function(key, test) {
        $("ul").append("<div>" + test.CustomerRef + "</div>" + "<div>" + obj.CustomerName + "</div>" + "<div>" + test.DelAddress1 + "</div>");
      });
    });
  });

链接的 js fiddle 显示问题;

https://jsfiddle.net/7vshmzj7/

为什么要这样做?以及可能的解决方法是什么?

【问题讨论】:

  • 欢迎来到 Stack Overflow!您问题的全部内容必须在您的问题中in,而不仅仅是链接。链接腐烂,使问题及其答案对未来的人们毫无用处,人们不应该离开现场来帮助你。将完整代码和 JSON 放入问题中。
  • 源于不知道 $.each 在做什么

标签: javascript jquery arrays json ajax


【解决方案1】:

您返回的 JSON 如下所示:

{
    "AddressData": {
        "OrderNo": "4200",
        "CustomerRef": "A1011",
        "DelAddress1": "4 Test Road",
        "DelAddress2": "Testing Lane",
        "DelAddress3": "Testland",
        "DelAddress4": "UK",
        "DelPostCode": "DB11 8DA"
    },
    "CustomerRef": "A1011",
    "CustomerName": "John Doe",
    "CustomerData": {
        "Email": "JohnDoe2500@gmail.com",
        "Phone": "07785442"
    }
}

这不是你必须用$.each 循环的东西,而用$.each 循环是问题所在。

直接使用即可:

$("button").click(function() {
    $.getJSON("https://api.myjson.com/bins/503aj", function(obj) {
        $("ul").append("<div>" + obj.CustomerRef + "</div>" + "<div>" + obj.CustomerName + "</div>" + "<div>" + obj.AddressData.DelAddress1 + "</div>");
    });
});

请注意,您正在访问的三个字段是这样访问的:

  • obj.CustomerRef
  • obj.CustomerName
  • obj.AddressData.DelAddress1

Updated Fiddle

【讨论】:

    猜你喜欢
    • 2014-01-19
    • 2022-01-21
    • 1970-01-01
    • 2013-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-06
    • 1970-01-01
    相关资源
    最近更新 更多