"thing.appendChild不是函数"for对象方法

"thing.appendChild is not a function" for object method

本文关键字:quot for 方法 函数 对象 thing appendChild      更新时间:2023-09-26

为这个可怕的标题道歉<我不知道如何用这么几个字来概括这个问题>

TL;DR为什么$("#canvas").appendChild()不起作用?

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

$(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,我不明白为什么。

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

我认为正确的函数是append,而不是jQuery包装上的appendChild

canvas.append(this.domDiv);

如果您使用的是主机查询选择器(document.getElementById('canvas'))而不是jQuery选择器($('canvas'))

,则需要使用appendChild