当尝试推送值变量push undefined not value

时间:2013-05-15 10:57:48

标签: javascript ajax push

我尝试使用javascript push()在变量中推送值。 这是三个值。

  1. 纬度
  2. 经度
  3. 区域
  4. 纬度和经度成功推动;区域没有被推 - 它是未定义的。

    我知道这是一个变量定义问题,但即使我全局定义了这个变量,我仍然会遇到这个问题。

    这是我的代码: -

    var get_all = new Array;
    var result_lat = new Array;
    var result_lng = new Array;
    var activity_2= "Rajkot,Jamnagar,Surat";
    var array_rg_name = activity_2.split(',');
                var cn = "IN";
    for (var i=0; i<array_rg_name.length; i++ ){
                $.ajax({
                    url: "http://services.gisgraphy.com//geocoding/geocode?address="+array_rg_name[i]+"&country="+cn+"&format=json",
          async: false,
          dataType:'jsonp',
          success: function(data){        
                lat = data.result[0].lat;
                result_lat.push(lat);
                lng = data.result[0].lng;
                result_lng.push(lng);
              get_all.push('Latitude: '+lat,'Longitude: '+lng,'Region: '+ array_rg_name[i]);
              }
                });
            }
    $('button').click(function(){
        alert(result_lat);
     alert(result_lng);
     alert(get_all);
    })
    

    有一个jsfiddle链接: - http://jsfiddle.net/Tr6sm/2/

    有什么建议吗?

1 个答案:

答案 0 :(得分:3)

这应该有效DEMO

注意我将rg定义为ajax调用的一部分rg:array_rg_name [i] ...并稍后使用this.rg ...

var get_all = new Array;
var result_lat = new Array;
var result_lng = new Array;
var activity_2= "Rajkot,Jamnagar,Surat";
var array_rg_name = activity_2.split(',');
            var cn = "IN";
for (var i=0; i<array_rg_name.length; i++ ){

            $.ajax({
                rg: array_rg_name[i],
                url: "http://services.gisgraphy.com//geocoding/geocode?address="+array_rg_name[i]+"&country="+cn+"&format=json",
                async: false,
                dataType:'jsonp',
                success: function(data){        
                     lat = data.result[0].lat;
                     result_lat.push(lat);
                     lng = data.result[0].lng;
                     result_lng.push(lng);
                     get_all.push('Latitude: '+lat,'Longitude: '+lng,'Region: '+ this.rg);
                 }
            });
}
$('button').click(function(){
    alert(result_lat);
 alert(result_lng);
 alert(get_all);
})