从javascript数组生成Jquery数组

从javascript数组生成Jquery数组,javascript,jquery,arrays,google-maps-api-3,jquery-gmap3,Javascript,Jquery,Arrays,Google Maps Api 3,Jquery Gmap3,我使用以下代码从谷歌地图距离矩阵中提取一些里程数据。问题是它以普通javascript的形式出现。我已经设法让它将数据放入javascript数组,因此我有: arrResults[0] arrResults[1] arrResults[2] arrResults[3] 但是我现在想在Jquery中使用这个数组,但是我不知道如何将它转换成Jquery数组 $( document ).ready(function() { $( "#submit" ).click(func

我使用以下代码从谷歌地图距离矩阵中提取一些里程数据。问题是它以普通javascript的形式出现。我已经设法让它将数据放入javascript数组,因此我有:

arrResults[0]
arrResults[1]
arrResults[2]
arrResults[3]
但是我现在想在Jquery中使用这个数组,但是我不知道如何将它转换成Jquery数组

    $( document ).ready(function() {
        $( "#submit" ).click(function() {
        $("#my_map").gmap3({
      getdistance:{
        options:{ 
          origins:["pe219px","ng323rj"], 
          destinations:["pe219px","ng323rj"],
          travelMode: google.maps.TravelMode.DRIVING,
          unitSystem: google.maps.UnitSystem.IMPERIAL
        },
        callback: function(results, status){
          var html = "";
          var arrResults = [];
          if (results){
            for (var i = 0; i < results.rows.length; i++){
              var elements = results.rows[i].elements;
              for(var j=0; j<elements.length; j++){
                switch(elements[j].status){
                  case "OK":
                  var sd=$(this).text();  
                    html += parseInt(elements[j].distance.text) + "<br />";
        arrResults.push(elements[j].distance.text); 

                    break;
                  case "NOT_FOUND":
                    html += "The origin and/or destination of this pairing could not be geocoded<br />";
                    break;
                  case "ZERO_RESULTS":
                    html += "No route could be found between the origin and destination.<br />";
                    break;
                }
              }
            } 
          } else {
            html = "error";
          }
          $("#my_map").html( html );
        }
      }
    });
         }); });
    </head>

    <body>
    <div id="my_map"></div>
    <p><a id="submit" href="#">Submit</a></p>
$(文档).ready(函数(){
$(“#提交”)。单击(函数(){
$(“我的地图”).gmap3({
getdistance:{
选项:{
产地:[“pe219px”、“ng323rj”],
目的地:[“pe219px”、“ng323rj”],
travelMode:google.maps.travelMode.DRIVING,
unitSystem:google.maps.unitSystem.IMPERIAL
},
回调:函数(结果、状态){
var html=“”;
var arrResults=[];
如果(结果){
对于(var i=0;i对于(var j=0;j它的问题稍微多一些,因为您使用的是
gmap3
插件,但下面是我解决问题的方法

第一:已编辑(有关更多详细信息,请参见编辑)

第二,通过在iLife的顶部声明,使函数全局可用
arresults
。不要在其他任何地方重新声明它

第三,将您的回调逻辑从ajax函数分离到一个新函数中。它使代码更易于阅读。类似于
processData()

第三,一旦AJAX完成并且您的
processData
函数完成了运行,使用
jQuery
向页面添加一个新的
#viewresults
按钮

$('body').append('<input id="viewresults" type="submit" value="View results"/>')
$('body')。追加(“”)
这样做是因为AJAX是异步的。在收集数据之前单击查看结果按钮将导致错误或无效,因此(至少对代码而言)只有在数据可用时才使用该按钮是有意义的


我在中提供了这些想法的摘要(未经测试,但应该给您一些线索)。我希望你觉得它有用。

jQuery是JavaScript——你在问什么?jQuery数组是什么?你希望用数组做什么?我想他想要一个对象来关联访问值?如果我在页面末尾的view result按钮上放置一个jQuery click函数并让它发出警报(arResults[2]);什么也没发生,所以我认为这是因为调用的是纯javascript,不能直接在jquery函数中按原样使用?
var arrResults
声明了该函数的本地数组。另一个函数将无法访问它。Andy,已经有一个
$(document).ready(function(){…})
wrapper,在制作专用包装器之前,至少应该考虑它。你说得对。我习惯了这样做,因为在我开始使用jQuery之前,我的应用程序中通常都有非jQuery代码。对这部分问题进行了修订。