这段代码执行得很好:
$([ $('<div>'), $('<div>') ]);
并返回一个使用jQuery属性扩展的数组(即each
,find
和所有其他$.fn.*
函数。)
但是,它既不是DOMElement也不是函数,因此该对象不能用于DOM操作。
为什么jQuery接受数组作为参数?
var els = $([ $('<div>'), $('<div>') ]);
$('body').append( els );
// ERR : Uncaught TypeError: Cannot read property 'ownerDocument' of undefined
我问这个问题,因为这个功能似乎与jQuery API的其余部分不一致。
似乎这issue has been addressed(谢谢你@Stryner找到了这一点)并且由于显而易见的原因(性能和易于发生WTF)而决定不实现此功能。
答案 0 :(得分:6)
元素的文档shows it accepts an array。
var els = $([
document.createElement("div"),
document.createElement("div")
]);
$('body').append( els );
......工作正常。
您的特定示例失败,因为您没有传递元素数组。似乎jQuery只是(可以说)没有足够的错误检查。