Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单个页面上的谷歌地图数量可变_Javascript_Jquery_Google Maps_Variables_Code Reuse - Fatal编程技术网

Javascript 单个页面上的谷歌地图数量可变

Javascript 单个页面上的谷歌地图数量可变,javascript,jquery,google-maps,variables,code-reuse,Javascript,Jquery,Google Maps,Variables,Code Reuse,我正在使用ajax在一个页面中加载多个Google地图。它们是动态生成的,每页呈现的贴图数量不同。我找到了我问题的部分解决办法 我的问题是我没有固定数量的地图。是否有一种方法可以动态生成存储映射对象(map1、map2等)的变量的名称?有没有更好的解决方案不需要生成变量名?有。在javascript中使用数组。大概是这样的: var mapObjects; function geAllMapDivs() { var allDivs = document.getE

我正在使用ajax在一个页面中加载多个Google地图。它们是动态生成的,每页呈现的贴图数量不同。我找到了我问题的部分解决办法


我的问题是我没有固定数量的地图。是否有一种方法可以动态生成存储映射对象(map1、map2等)的变量的名称?有没有更好的解决方案不需要生成变量名?

有。在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)); 
        }
    }
var映射对象;
函数geAllMapDivs(){
var allDivs=document.getElementsByTagName('DIV'),i,L;
var-mapDivs=[];

对于(i=0,L=allDivs.length;i之后,我将如何引用它们?
mapObjects[0]
mapObjects[1]
等等。在
createMaps()之后
函数完成后,您可以引用
mapObjects
就像在
createMaps
函数中引用
mapDivs
一样。它们都是对象数组。(虽然
mapDivs
仅在
createMaps
函数中已知)