我正在讀取一個帶有大約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