0

我已经为此奋斗了几个小时,但它却逃避了我的理解……

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”,检查。

然而。它使 instanceof 失败。此外,它应该有方法 appendChild,但它是未定义的。(实际上,如果我尝试调用它,它会引发错误。)

这里到底发生了什么?jQuery为我们创建的元素是假的吗?

4

1 回答 1

1

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

于 2013-11-03T15:19:46.543 回答