是否可以附加到jQuery变量?
像这样$($tnail).appendTo($collection);
我需要优化昂贵的DOM修改并希望一次完成所有操作。
类似的东西:
var $collection;
$.each(items, function (i, item) {
var $tnail = $("<div></div>");
$($tnail).appendTo($collection);
});
$($collection).appendTo("#Container");
答案 0 :(得分:1)
是的!您只需要确保$collection
是一个jQuery对象:
var $collection = $('<x/>');
$.each(items, function (i, item) {
var $tnail = $("<div></div>");
$tnail.appendTo($collection);
});
$($collection.html()).appendTo("#Container");
你还有2位在新的jQuery调用中包装jQuery对象:$tnail
已经是一个jQuery包装的div,所以它已经有appendTo
方法。更多性能优势!
编辑:正如凯文指出的那样,你无法附加到一个空的jQuery对象。在内部,jQuery使用空文档片段,但它不会通过它的API公开它。所以我改变了我的解决方案来创建一个虚拟元素,然后只将它的内容附加到#Container
。
答案 1 :(得分:1)
您实际上并不想将元素追加到$ collection,而是想将它们添加到它。
var $collection = $(); // must be a jquery object
$.each(items, function (i, item) {
var $tnail = $("<div></div>");
// add to collection
$collection.add($tnail);
});