Node.appendChild的参数1不是对象

时间:2016-04-16 09:52:36

标签: javascript jquery

我有启动谷歌地图的脚本,在初始化该函数的第一个实例时我没有通过控制台得到任何错误,尽管我有一个链接将地图的坐标重置为不同的商店,在调用该函数时新坐标我得到Node.appendChild的参数1不是一个对象。以下

的错误
    function CustomZoomControl(controlDiv, map) {
        //grap the zoom elements from the DOM and insert them in the map 
        var controlUIzoomIn= document.getElementById('cd-zoom-in'),
            controlUIzoomOut= document.getElementById('cd-zoom-out');
        controlDiv.appendChild(controlUIzoomIn);
        controlDiv.appendChild(controlUIzoomOut);

        // Setup the click event listeners and zoom-in or out according to the clicked element
        google.maps.event.addDomListener(controlUIzoomIn, 'click', function() {
            map.setZoom(map.getZoom()+1)
        });
        google.maps.event.addDomListener(controlUIzoomOut, 'click', function() {
            map.setZoom(map.getZoom()-1)
        });
    }

    var zoomControlDiv = document.createElement('div');
    var zoomControl = new CustomZoomControl(zoomControlDiv, map); 

我无法弄清楚为什么DOM对象在函数的第一个实例中工作正常但在被调用时却没有工作

2 个答案:

答案 0 :(得分:1)

无法弄清楚为什么它给我null - 但我确实知道它在调用函数时抛出了一个错误 - 不知怎的,我之前没有看到这个解决方案,但我只是把原始变量初始化放在函数之外并且它工作了

答案 1 :(得分:0)

根据上述评论,controlUIzoomInnull

因此,当您以null值作为参数调用appendChild时,将抛出此错误。

  

Node.appendChild的参数1不是对象