Javascript JQuery中的appendChild错误,但appendTo工作正常

Javascript JQuery中的appendChild错误,但appendTo工作正常,javascript,jquery,Javascript,Jquery,这里有这个问题的答案 但这与我的用例无关,因为我不是选择节点列表,而是简单地将一个元素放入变量中 在下面的JQuery代码段中,我使用appendChild时遇到了相同的错误,但是appendTo工作得很好。我很想知道这是为什么 function handleImageFiles(files) { var container = $("#imageGallery"); container.innerHtml = ""; for (var i = 0

这里有这个问题的答案 但这与我的用例无关,因为我不是选择节点列表,而是简单地将一个元素放入变量中

在下面的JQuery代码段中,我使用appendChild时遇到了相同的错误,但是appendTo工作得很好。我很想知道这是为什么

function handleImageFiles(files) {
        var container = $("#imageGallery");
        container.innerHtml = "";
        for (var i = 0; i < files.length; i++) {
            var file = files[i];
            var filename = file.name;

            var photoDiv = $("<div>", { id: "file" + i, 'class': "col-lg-3 col-md-4 col-xs-6 thumb" });
                container.appendChild(photoDiv);
               //photoDiv.appendTo(container);

           //rest of code
}
函数handleImageFiles(文件){
var容器=$(“#图像库”);
container.innerHtml=“”;
对于(var i=0;i
container是有效对象,但container.appendChild(photoDiv)正在抛出

未捕获的TypeError:container.appendChild不是函数


我不明白为什么给定container和photoDiv都是有效对象,photoDiv.appendTo(container)工作得很好。

jQuery没有名为
appendChild的函数(只有DOM元素有)。您要查找的是

更改:
container.appendChild(photoDiv);
为:
container.append(photoDiv);


注意:jQuery也没有名为
innerHTML的属性,它有一个名为acheives的函数。如果要清空元素,请使用。

…没有innerHTML?Intellisense显示它是容器外的一个有效方法。我将使用append。@dinotom允许它,因为
container
是一个object,您正在向该对象添加一个属性
innerHTML
。您预期的效果不会发生。它类似于:
var obj={};obj.innerHTML=“”
这绝对没问题,但对DOM元素没有影响……谢谢你对这一点的澄清,可能是同一个人在完全不同的场景下标记为重复的。是的!是他。他以前做过。@Kevin B……如果你读了我引用的帖子,就不是重复的,这与你提到的一样。“这个问题被标记为完全重复的问题"…显然不是。除了…它是相同的。你的代码不工作的原因与被复制者不工作的原因相同。解决方案是相同的。要么使用jquery方法,要么从jquery对象中打开dom节点。@Kevin B…错了,他试图使用appendChild传递字符串,这是无效的,在我的示例中不是这样的。对m来说差异不够大请听我说。