jquery:读取xml文档,变量不被传递出函数

时间:2013-04-07 19:17:42

标签: jquery xml variables

我正在阅读一个包含大约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)

1 个答案:

答案 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();
    });
}