如果对于包含类.event
的每个div更改了值,我正在使用以下代码检索给定位置的经度和纬度。JSON请求在jQuery中无法正常工作每个函数
时遇到的问题是,只有两个结果从该代码发生:
- 的值从一个JSON请求返回被用于每
lat
和lon
可变 - 变量
lat
和lon
保持完全一样,就好像它们保持不变,所以JSON值不会被替换。
下面是我使用的代码:
$(".button").click(function(){
data = "";
$(".event").each(function(){
original = $(this).find(".address").data("original");
location = $(this).find(".address").html();
lat = $(this).find(".lat").html();
lon = $(this).find(".lon").html();
if (original !== location) {
$.getJSON("http://nominatim.openstreetmap.org/search?q="+location+"&format=json&polygon=1&addressdetails=1", function(result) {
lat = result[0].lat;
lon = result[0].lon;
});
}
data = data + randomNumber() + ": " + lat + " " + lon + ",";
});
$(".data").val(data);
$(".form").submit();
});
可变data
将包含含有类event
每个格的lat
和lon
。除非用户更改地址,否则这些值将保持不变,在此时他们将通过JSON请求再次被检索。
然后提交表格。
我该如何解决这个问题?谢谢
'$ .getJSON'是异步的。你在回调函数执行前设置'data'。 – Barmar