jQuery创建的节点是假的吗?

Are jQuery created nodes fakes?

本文关键字:节点 创建 jQuery      更新时间:2023-09-26

我已经为此斗争了几个小时,但它逃避了我的理解......

var newLabel = $('<div></div>');
newLabel.appendTo("#f0");
console.log($("#f0").html());     // <br><div></div>
console.log(newLabel);            // [object Object]
var div = newLabel.first().get();
console.log(div);                 // [object HTMLDivElement]
if( div instanceof HTMLDivElement ) { console.log("VALID"); } // 
else { console.log("INVALID"); }  // INVALID
console.log(div.appendChild);     // undefined

我们使用jQuery创建一个div元素并将其附加到DOM元素中。它进去,检查。对象打印为"HTMLDivElement",选中。

然而。它使实例失败。此外,它应该有方法appendChild,但它未定义。(事实上,如果我尝试调用它,它会抛出错误。

这到底是怎么回事?为我们创建的元素jQuery是假的吗?

get()返回

一个数组,所以div在你的情况下是一个数组(显然不是HTMLDivElement也没有方法appendChild)。请参阅:http://api.jquery.com/get/#get2。如果您改用.get(0)(或仅[0]),您将获得实际的div元素。