" thing.appendChild不是一个功能"对象方法

时间:2015-11-20 19:13:37

标签: javascript jquery prototype

为可怕的头衔道歉; 我不确定如何用这么几个字符来总结这个问题。

TL; DR 为什么$("#canvas").appendChild()无效?

我有一个原型Car,在实例化时,应该在div中创建一个div,其id为" canvas"。

$(document).ready(function() {

    var canvas = $("#canvas");

    function Car(speed) {
        ...        
        this.domDiv = document.createElement("div");
        $(this.domDiv).addClass("car");
        this.addToCanvas = function() {
            canvas.appendChild(this.domDiv);
        };
        this.addToCanvas();
        ...
    }

    car1 = new Car(0.5);

});

但是,我得到Uncaught TypeError: canvas.appendChild is not a function,我不明白为什么。

2 个答案:

答案 0 :(得分:2)

appendChild是一个DOM函数。 append是一个jQuery函数(canvas是一个jQuery对象)。

答案 1 :(得分:1)

我认为正确的函数是追加的,而不是在jQuery包装器上的appendChild

canvas.append(this.domDiv);

如果你使用了主机查询选择器(document.getElementById(' canvas'))而不是jQuery选择器($(' canvas')),你会想要使用appendChild / p>