我试图循环通过一些JSON,但是一旦它到达url的值,它们就作为未定义的值返回。下面是我的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”是唯一返回为未定义的键。我做错了什么?
发布于 2017-07-11 05:07:41
问题出在这里:
$.getJSON("https:../houston-locations.js", function(data){
$.each(data, function(i, data) {您正在覆盖function(i, data)中的变量data,请考虑将其更改为value或其他名称。
发布于 2017-07-11 05:28:45
$.getJSON("https:../houston-locations.js",function(data){
console.log(data);
$.each(data, function( key, value ){
console.log(data.directions);
console.log(data.url);
});
});$.getSOn的正确用法如下
发布于 2017-07-11 05:37:20
我发现解决方案很简单..这是一个缓存问题,所以没有加载新的JSON数据。不过,我确实更改了覆盖'data‘值。谢谢大家!
https://stackoverflow.com/questions/45021478
复制相似问题