我正在尝试遍历一些JSON但是一旦它获得了url的值,它们将返回为undefined。这是我的JS
的简化示例$.getJSON("https:../houston-locations.js", function(data){
$.each(data, function(i, data){
$("ul.mapList").append(
'<li id="store-' + data.restaurant + '">'+
'<div class="singleLocation">' +
'<a href="' + data.directions + '" target="_blank"><button class="directions">DIRECTIONS</button></a>' +
'<a href="' + data.url + '">Restaurant Details</a>' +
'</div>' +
'</div></li>'
)
})
});
我的JSON:
{ "restaurant":31, "restaurantName":"Shenandoah", "address":"19075 IH 45 S Suite 480", "city":"Shenandoah", "state":"TX", "zip":77385, "phone":"(936) 271-9217", "directions":"https://www.google.com/maps/dir//Pei+Wei,+19075+I-45+%23480,+Shenandoah,+TX+77385/@30.1826863,-95.4533763,17z/", "url":"/texas/31-shenandoah"}
最后两个键,“directions”和“url”是唯一返回未定义的键。我做错了什么?
答案 0 :(得分:0)
问题出在这里:
$.getJSON("https:../houston-locations.js", function(data){
$.each(data, function(i, data) {
您正在覆盖data
中的变量function(i, data)
,请考虑将其更改为value
或其他内容。
答案 1 :(得分:0)
使用此代码:
$.getJSON( "ajax/ejemplo.json", function( data ) { var items = []; $.each( data, function( key, val ) { items.push( "" + val + "" ); }); $( "", { "class": "my-new-list", html: items.join( "" ) }).appendTo( "body" ); });
答案 2 :(得分:0)
$.getJSON("https:../houston-locations.js",function(data){
console.log(data);
$.each(data, function( key, value ){
console.log(data.directions);
console.log(data.url);
});
});
正确使用$ .getSOn如上所述
答案 3 :(得分:0)
我发现解决方案很简单..这是一个缓存问题,因此新的JSON数据没有被加载。然而,我确实改变了覆盖数据&#39;值。谢谢大家!