使用jQuery的DOM元素的非深层副本

Bla*_*olf 5 javascript jquery dom clone deep-copy

是否可以在jQuery中创建DOM元素的克隆/副本而不克隆其内容?我需要将div的内容拆分为两个具有相同属性的独立div.所以例如我需要改变:

<div class="someclass" someattr="someval">
    this is the first sentence. this is the second sentence.
</div>
Run Code Online (Sandbox Code Playgroud)

变成这样的东西:

<div class="someclass" someattr="someval">
    this is the first sentence.
</div>
<div class="someclass" someattr="someval">
    this is the second sentence.
</div>
Run Code Online (Sandbox Code Playgroud)

内容如何分割是相当复杂的,但这基本上是我需要做的.显然,创建没有内容的克隆可以使用以下方法实现:

$(el).clone().empty();
Run Code Online (Sandbox Code Playgroud)

但是由于我的元素可能变得相当大,我想摆脱不必要地克隆元素内容的开销.想法?谢谢!

1j0*_*j01 6

只要您不需要保留(非基于属性的)事件侦听器或其他数据,只需绕过jQuery进行此操作即可.

var $clone = $(el.cloneNode(false));
Run Code Online (Sandbox Code Playgroud)