JavaScript - 'Node'上的'appendChild':参数1不是'Node'类型

时间:2015-08-17 00:19:13

标签: javascript

我无法解决这个问题(学习JS),还有其他线程,但没有人帮助我。

根据'Mozilla':

添加节点很简单:

// Create a new paragraph element, and append it to the end of the document body
var p = document.createElement("p");
document.body.appendChild(p);

然而,当我做那样的事情时,我得到:

“...参数1不属于Node”

JS代码:

(function () {

    var myNode = document.querySelector('#shiny-pics .pixgrid ul');       
    myNode.addEventListener("click", function(e) {        
        if (e.target.tagName === 'IMG') {         
            var myOverlay = document.createElement('div');
            myOverlay.id = 'overlay';
            document.body.appendChild('myOverlay');
            /*console.log(typeof(myOverlay));*/
            /*console.log(myOverlay.prototype.toString());*/
        }

    }, false); //image is clicked       
})();

我还尝试查看我的var'myOverlay'的类型( typeof ),但它只是说 object

还有:'Object.prototype.toString',但我只看到第一个错误,表明该对象不是node类型。请参阅我的评论代码。

1 个答案:

答案 0 :(得分:1)

您正在追加(或尝试追加)字符串'myOverlay',而不是您创建的节点。就像在第一个代码示例中一样,你没有写

  document.body.appendChild('p');

你应该写

    document.body.appendChild(myOverlay);