Javascript jquery clone()用户文档是否在内部分段?

Javascript jquery clone()用户文档是否在内部分段?,javascript,jquery,documentfragment,Javascript,Jquery,Documentfragment,我正在动态地将元素插入dom,为此我使用以下步骤:(jquery)初始dom结构如下所示: <div parent div> </div> <div child div template> </div> 使用jquery.clone()克隆父div 克隆子div并执行操作 附加到克隆的父级 对所有子数据执行此操作 (parentdiv原件).replaceAll(克隆父项) 基本上,我希望以某种方式克隆父div,以便它可以作为 doc

我正在动态地将元素插入dom,为此我使用以下步骤:(jquery)初始dom结构如下所示:

<div parent div>
 </div>
 <div child div template>
</div>

  • 使用jquery.clone()克隆父div
  • 克隆子div并执行操作
  • 附加到克隆的父级
  • 对所有子数据执行此操作
  • (parentdiv原件).replaceAll(克隆父项)
基本上,我希望以某种方式克隆父div,以便它可以作为 documentfragment,这样附加就不会在dom上发生并获得性能

jQuery
clone()
是否会像documentfragment一样提供性能优势? 还是有更好的方法?我不想将每个子元素构造为HTML字符串,因为它们的结构非常复杂。

jQuery
clone()
做一个普通的DOM
cloneNode()
,IE除外,如果这样做,它会不适当地复制事件侦听器。为了解决这个问题,在IE上jQuery做了一些你不想知道的非常可怕的事情。这并不快

replaceAll()
也不是很快。它必须从DOM中删除每个子节点(在jQuery中速度特别慢,因为从DOM中删除某些内容时需要检查
数据
),然后逐个添加新节点


我真的不明白是什么让你来到这里。直接对孩子们进行操作。如果您有很多操作要做,并且触发了使其变慢的重新播放,您可以暂时隐藏父级或将其从文档中分离,完成后重新追加。示例代码的第2行和第3行是否向后?似乎您希望它是嵌套的div。不,它们是两个独立的div,第一个是父div,我想在其中创建子div,另一个只是一个模板div,用于克隆并在父div内创建子div。为什么需要克隆父div?在您以某种方式插入克隆元素之前,该文档中不存在克隆元素。感谢您提供详细答案。我之所以克隆子元素,是因为我正在动态地创建新的子元素,为此我获得了模板子元素的支持,克隆它,然后追加。子项在手之前不存在,因此无法通过分离进行操作,在这种情况下,我要做什么,我必须使用某种模板创建新的子项..好的,克隆并附加子项,但不需要克隆父项。如果你确定需要的话,你可以分离并重新绑定父元素。我希望克隆很多子元素是可以的。有没有其他方法可以帮助我克隆子元素?有什么可怕的事情吗?@1252748在撰写本文时,jQuery抓取了源节点的
outerHTML
,使用regexp处理它以尝试删除随机编号的
jquerynnnnn=“NNNN”
内部ID属性(这是不可靠的),使用regexp提取
元素并将结果写回一组包装器。不知道它是否仍然这样做。。。我希望不会,因为它不再支持那些混用事件监听器的IE版本。