2016-07-28 11 views
-1

jsonを追加する際に問題があります。それは複数の定義されていないものを印刷し、私はその原因が不明です。Jquery appending undefined

マイコード:

$("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のリンクフィドル。

https://jsfiddle.net/7vshmzj7/

なぜそれを行うのですか?考えられる回避策は何ですか?

+0

ようこそスタックオーバーフロー!あなたの質問の完全な内容は、リンクされているだけでなく**あなたの質問で**なければなりません。リンクが腐って、将来の質問やその回答が役に立たなくなり、人々はあなたを助けるためにオフサイトに行く必要はありません。 **すべてのコードとJSON **を**に入れてください。 –

+1

それは$が何をしているのか分からないことに由来します –

答えて

3

あなたが戻って取得している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": "[email protected]", 
     "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