2012-03-13 15 views
0

我想了很長的JavaScript代碼轉換成一個單一的「for循環:從A點到B點,我做了什麼錯,這是一個調用谷歌地圖標記,每個標記使用的是不同的內容和位置,但它們共享相同的圖標,陰影...... A點以下:結合長期的JavaScript到一個

var mappro1 = new google.maps.Marker({ 
        position: map1, 
        map: map, 
        icon: companyImage, 
        shadow: companyShadow, 
        title:"c", 
        zIndex: 4 
      }); 
      var mappro2 = new google.maps.Marker({ 
        position: map2, 
        map: map, 
        icon: companyImage, 
        shadow: companyShadow, 
        title:"c", 
        zIndex: 4 
      }); 
      var mappro3 = new google.maps.Marker({ 
        position: map3, 
        map: map, 
        icon: companyImage, 
        shadow: companyShadow, 
        title:"c", 
        zIndex: 4 
      }); 
      var mappro4 = new google.maps.Marker({ 
        position: map4, 
        map: map, 
        icon: companyImage, 
        shadow: companyShadow, 
        title:"c", 
        zIndex: 4 
      }); 
      var mappro5 = new google.maps.Marker({ 
        position: map5, 
        map: map, 
        icon: companyImage, 
        shadow: companyShadow, 
        title:"c", 
        zIndex: 4 
      }); 
      var mappro6 = new google.maps.Marker({ 
        position: map6, 
        map: map, 
        icon: companyImage, 
        shadow: companyShadow, 
        title:"c", 
        zIndex: 4 
      }); 
      var mappro7 = new google.maps.Marker({ 
        position: map7, 
        map: map, 
        icon: companyImage, 
        shadow: companyShadow, 
        title:"c", 
        zIndex: 4 
      }); 
      var mappro8 = new google.maps.Marker({ 
        position: map8, 
        map: map, 
        icon: companyImage, 
        shadow: companyShadow, 
        title:"c", 
        zIndex: 4 
      }); 
      var mappro9 = new google.maps.Marker({ 
        position: map9, 
        map: map, 
        icon: companyImage, 
        shadow: companyShadow, 
        title:"c", 
        zIndex: 4 
      }); 

B點所示:

  for ($i=1; $i <10; $i++){ 

       var $mappros = "mappro" + $i; 
       var $mappos = "map" + $i; 

       var mappros = new google.maps.Marker({ 
        position: $mappos, 
        map: map, 
        icon: companyImage, 
        shadow: companyShadow, 
        title:"$i", 
        zIndex: $i 
       }); 
      }; 
+0

變量$ mappros是否真的需要? – 2012-03-13 08:38:21

+1

不是你寫的是什麼問題...什麼是'圖{X}'???價值,而且有事情是不是一種平等的夫妻,像'title'和'zIndex'正在改變** B **但在** A中不發生變化** – gdoron 2012-03-13 08:38:40

+0

您在'for loop'中重新聲明'mappros'。嘗試將新的Marker對象附加到在'for循環之外聲明的數組。 – Stefan 2012-03-13 08:48:10

回答

1

這是根據我的代碼迴路的變種在答:

var mappros = []; 
for (var $i = 1; $i < 10; $i++){ 
    var mappro = new google.maps.Marker({ 
     position: "map" + $i, 
     map: map, 
     icon: companyImage, 
     shadow: companyShadow, 
     title: "c", 
     zIndex: 4 
    }); 
    mappros.push(mappro); 
}; 

所以,你會得到的mappro數組訪問任何然後通過指數。如果你需要爲每個mappro單獨的名稱,你應該用這個替換標題行:

title: $i,