我正在读取一个带有大约1180个轨迹点的gpx xml文档,每个轨迹点都包含一个高程标记。我可以得到这个长度,但不能将它传递给稍后用于计算总上升的if循环。jquery:读取xml文档,变量没有被传递出函数
var elevs = [];
var $l = 0;
$.ajax({
type: "GET",
url: "../gpx/27-Mar-13slow.gpx",
dataType: "xml",
success: function(xml) {
$(xml).find('trkseg').each(function(){
$l=$(this).find("trkpt").length;
$(xml).find('trkpt').each(function(){
elevs.push(+$(this).find('ele').text());
});
$('#holder').append('<div>' + $l + '</div>');
//fn();
});
}
});
即$('#holder').append('<div>' + $l + '</div>');
正确显示航迹点的总数,但移动它它没有功能的外部。我假设为全局变量$l
不会更改为轨迹点长度。任何人都可以启发我为什么? (该高程o数组包含高程数据确定)
你的AJAX功能是异步的,所以试图用变量的成功回调外时,Ajax的功能有'nt完成,你的变量仍然包含零。在使用数据之前,您必须等待ajax调用完成,这就是成功回调的原因。 – adeneo 2013-04-07 19:23:52