我一直在和它斗争几个小时,但它却逃避了我的理解......
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,假的吗?
答案 0 :(得分:1)
get()
返回一个数组,因此div
是一个数组(显然不是HTMLDivElement
,也没有方法appendChild
)。见:http://api.jquery.com/get/#get2。如果您使用.get(0)
(或仅[0]
),您将获得实际的div
元素。