从javascript数组生成Jquery数组
我使用以下代码从谷歌地图距离矩阵中提取一些里程数据。问题是它以普通javascript的形式出现。我已经设法让它将数据放入javascript数组,因此我有:从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
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代码。对这部分问题进行了修订。