それぞれ標高タグを含む約 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 配列には標高データが含まれています)