什么是创建元素并将它们附加到jquery中的dom的最佳方法?

前端之家收集整理的这篇文章主要介绍了什么是创建元素并将它们附加到jquery中的dom的最佳方法?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我使用jQuery在 javascript代码添加li元素.

例1:

for(var i=0 i<=5; i++){

    var li = $("<li/>");
    li.html("teest "+i);
    $("#ulid").append(li);

}

我已经了解到上面的例子是一个不好的做法,因为循环在每次点击追加(li)时都会重建dom.

如果是这种情况,那么与上述示例完全相同的最佳方法是什么?

解决方法

对于绝大多数用例,你所做的事情可能都很好.你的代码最终会为每个li调用一次DOM appendChild函数,我很确定这也是到目前为止所有答案都能做到的.而且,它可能很好,但每次都可能导致回流.

在那些你绝对需要避免在每次循环中引起DOM重排的情况下,你可能需要一个document fragment.

var i,li,frag = document.createDocumentFragment();
for(i=0; i<=5; i++){
    li = $("<li>" + "teest "+i + "</li>");
    frag.appendChild(li[0]);
}
$("#ulid").append(frag); // Or $("#ulid")[0].appendChild(frag);

附加片段时,会附加片段的子节点,而不是实际片段.这里的优点是作为单个DOM调用,您为DOM引擎提供了添加所有元素的机会,并且最后只进行了重排.

猜你在找的jQuery相关文章