[英]jQuery append to jQuery variable instead of DOM element
是否有可能附加到jQuery变量?
喜欢这个$($tnail).appendTo($collection);
我需要优化昂贵的DOM修改并希望一次完成所有操作。
这样的事情:
var $collection;
$.each(items, function (i, item) {
var $tnail = $("<div></div>");
$($tnail).appendTo($collection);
});
$($collection).appendTo("#Container");
是! 您只需要确保$collection
是一个jQuery对象:
var $collection = $('<x/>');
$.each(items, function (i, item) {
var $tnail = $("<div></div>");
$tnail.appendTo($collection);
});
$($collection.html()).appendTo("#Container");
在新的jQuery调用中,你还有2位包装jQuery对象: $tnail
已经是一个jQuery包装的div,所以它已经有了appendTo
方法。 更多性能优势!
编辑:正如Kevin指出的那样,你不能附加到一个空的jQuery对象。 在内部,jQuery使用空文档片段,但它不会通过它的API公开它。 所以我改变了我的解决方案来创建一个虚拟元素,然后只将其内容附加到#Container
。
您实际上并不想将元素追加到$ collection,而是希望将它们添加到$ collection中。
var $collection = $(); // must be a jquery object
$.each(items, function (i, item) {
var $tnail = $("<div></div>");
// add to collection
$collection.add($tnail);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.