我有这段代码:
for(var i in dataJson){
direcc=dataJson[i].dir ;
id=dataJson[i].id ;
$.ajax({
url: 'http://dev.virtualearth.net/REST/v1/Locations?query=' + direcc + '&key=mykey&jsonp=?',
dataType: 'json',
async: false,
success: function(result) {
loc = result.resourceSets[0].resources[0].point.coordinates;
direcc=result.resourceSets[0].resources[0].address.formattedAddress;
lat=loc[0];
long=loc[1];
$("#bing").append('latitudeBing:' + lat + '<p>longitudeBing:' + long+'$$$$$$'+id);
}
});
问题在于我想要写入纬度+经度+ id,但是当它写入时,id是所有这些的最后一个(id从1-200开始,在所有坐标中都显示为200)。
原始函数是$ getjson,我更改了它以使$ ajax调用async:false,但这并不能解决我的问题。
是的,有人可以帮帮我吗?非常感谢!!答案 0 :(得分:1)
现在使用正确的答案进行编辑。
for(var i in dataJson){
var direcc = dataJson[i].dir;
var id = dataJson[i].id;
makeAjaxCall(direcc, id);
}
function makeAjaxCall(direcc, id) {
$.ajax({
url: 'http://dev.virtualearth.net/REST/v1/Locations?query=' + direcc + '&key=mykey&jsonp=?',
dataType: 'json',
async: false,
success: function(result) {
loc = result.resourceSets[0].resources[0].point.coordinates;
direcc=result.resourceSets[0].resources[0].address.formattedAddress;
lat=loc[0];
long=loc[1];
$("#bing").append('latitudeBing:' + lat + '<p>longitudeBing:' + long+'$$$$$$'+id);
}
});
}
这会将“当前”direcc
和id
置于makeAjaxCall
函数的范围内。我添加的小提琴只是展示了如何。
此外,无需保留async: false,
,所以如果您愿意,请随时删除。