我正在阅读一个包含大约1180个跟踪点的gpx xml文档,每个跟踪点都包含一个提升标记。我可以得到长度,但不能传递它以后用于计算总上升的if循环。
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
不会改变为跟踪点长度。任何人都可以告诉我为什么? (elevs数组包含高程数据ok)
答案 0 :(得分:0)
尝试修改成功功能,如下所示:
success: function (xml) {
var xmlDoc = $.parseXML(xml);
var $xml = $(xmlDoc),
var $trkseg = $xml.find("trkseg");
$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();
});
}