我已經建立了一個數據驅動的谷歌地圖,根據不同的圖標分配到地圖,取決於所在物品的類型。因此,如果我有5種類型的地標,並且每個都有不同的圖標(商店,圖書館,醫院等) - 我想要做的就是動態生成Google圖標對象。我在想這樣的事情:有沒有一種簡單的方法來用Javascript創建動態變量?
types = array('hospital','church','library','store',etc);
var i=0;
while (i<=types.length) {
var landmark + i = new google.maps.Icon();
landmark.image = "icon" + i + ".png";
i++;
}
然而,正如你可能猜到的,這是行不通的。我使用eval,這樣也試過:
while (i<=types.length) {
doIcon(i);
i++;
}
function doIcon(i){
eval("var landmark" + i + " = new.google.maps.Icon();");
return eval("landmark" + i);
}
,但它沒有工作either--我會很感激的動態生成JavaScript變量的指針。它必須是純粹的js,我可以在PHP中完成,但這不是一個選項。
謝謝!
+1 - 歡迎來到StackOverflow :-) – 2010-03-09 23:46:02
JavaScript真的是一種動態語言。你很少需要爲這樣的事情使用eval語句,因爲只要語法是正確的,你大多可以寫任何你想要的東西,如果你寫的東西不存在,你會得到一個運行時錯誤。關於javascript的一個好處是window.close與編寫窗口[「close」]相同。所以你甚至可以寫窗口[「close」]();或var c =「close」;窗口[C](); – Alxandr 2010-03-09 23:48:58