【发布时间】:2011-12-13 18:24:08
【问题描述】:
我正在使用 ajax 在一个页面内加载多个 Google 地图。它们是动态生成的,每页呈现的地图数量不同。我找到了我的问题here 的部分解决方案。
我的解决方案的问题是我没有固定数量的地图。有没有办法动态生成存储地图对象(map1、map2 等)的变量的名称?有没有更好的不涉及生成变量名的解决方案?
【问题讨论】:
标签: javascript jquery google-maps variables code-reuse
我正在使用 ajax 在一个页面内加载多个 Google 地图。它们是动态生成的,每页呈现的地图数量不同。我找到了我的问题here 的部分解决方案。
我的解决方案的问题是我没有固定数量的地图。有没有办法动态生成存储地图对象(map1、map2 等)的变量的名称?有没有更好的不涉及生成变量名的解决方案?
【问题讨论】:
标签: javascript jquery google-maps variables code-reuse
是的。在 JavaScript 中使用数组。像这样:
var mapObjects;
function geAllMapDivs() {
var allDivs = document.getElementsByTagName('DIV'), i, L;
var mapDivs = [];
for(i=0, L=allDivs.length; i<L; i++) {
if (allDivs[i].id.substring(0,4) == "map_") {
mapDivs.push(allDivs[i]);
}
}
return mapDivs;
}
function createMaps() {
var mapDivs = getAllMapDivs(), i, L;
mapObjects = [];
for(i=0, L=mapDivs.length; i<L; i++) {
mapObjects.push(new google.maps.Map(mapDivs[i], myOptions));
}
}
【讨论】:
mapObjects[0]、mapObjects[1] 等等。在createMaps() 函数完成后,您可以像在mapDivs 内引用mapDivs 一样引用mapObjects。 它们都是对象数组。 (虽然mapDivs 仅在createMaps 函数内部已知)