1

私は自分がやっているこのプロジェクトに本当に固執しています。以下は私のコードです。ちなみに私はGoogleMapsAPIを使っています。

var arr = new Array();
arr[0] = lat1, lon1
arr[1] = lat2, lon2
arr[2] = lat3, lon3
for (each i in arr){
    var newCenter = "<button onClick='map.setCenter(arr[i])'>Center Map</button>";
    $("#myTable").append(newCenter);
}

今私はそれを知っています

'map.setCenter(arr[i])'

基本的に「arr[i]」をDOMにハードコーディングしているため、正しくありません。私がやりたいのは、変数としてarr [i]を使用して、DOMが次のようになるようにすることです。

<button onClick='map.setCenter(arr[0])'>Center Map</button>
<button onClick='map.setCenter(arr[1])'>Center Map</button>
<button onClick='map.setCenter(arr[2])'>Center Map</button>

私が試してみました

"<button onClick='map.setCenter(" + arr[i] + ")'>Center Map</button>"

しかし、それは機能しません。私はかなり長い間これに固執しています。どんな助けでもいただければ幸いです。ありがとうございました。

4

2 に答える 2

1

for (var i = 0 ; i < arr.length ;i++)1-演算子ではなく、使用する配列をループします in

2-クロージャを取得するには、別の関数でリンクを作成する必要があります(ここでの説明

3-配列はgoogle.maps.LatLng()オブジェクトを保持する必要があります。

var arr = new Array();
arr[0] = new google.maps.LatLng(lat1, lon1);
arr[1] = new google.maps.LatLng(lat2, lon2);
arr[2] = new google.maps.LatLng(lat3, lon3);


for (var i = 0 ; i < arr.length ;i++) {
    var button = createbutton(arr[i],i);
 }

function createbutton(latlon,index) {
    var button = document.createElement('button');
    var container = document.getElementById('containerDiv');
    button.onclick = function(){map.setCenter(latlon)};
    button.value = 'Center Map at ' + index;
    container.appendChild(button);
}

...そしてあなたのHTMLで:

<div id ="containerDiv"></div>
于 2012-11-08T06:34:36.357 に答える
0
for (each i in arr){

察するに

for (var i in arr){

またarr[0] = lat1, lon1 、そもそも何の意味もありません

完全なコード

for (var i in arr){
    var newCenter = "<button onClick='map.setCenter("+ arr[i] + ")'>Center Map</button>";
    $("#myTable").append(newCenter);
}
于 2012-11-08T05:08:58.903 に答える