1

我有 HTML 结构,例如

<div id="mydiv" class="some" onclick="alert('Hello!')" style="background:red" >
   <div>aa</div>
   <div style="background:green" >bb</div> 
</div>  

http://jsfiddle.net/Pj5sn/

而且我要

<div id="mydiv" class="some" onclick="alert('Hello!')" style="background:red" >
</div>

因此。.clone()创建一个深拷贝,但我需要浅拷贝。

编辑 到目前为止包含的所有答案都做了一个深拷贝和清晰的内容。我打算将它用于几十个容器,每个容器都包含几十个对象。我认为有必要有一些更有效的东西。

4

4 回答 4

8

先用.clone(),再用.empty()结果。

于 2012-09-19T12:33:41.073 回答
3

最简单的是$(this).clone().html('').

于 2012-09-19T12:33:36.333 回答
0

您必须从要克隆的 div 中删除内容。

var s = $('#mydiv').clone().html('');
$('#container').append(s);

​简单,但有效!

http://jsfiddle.net/shannonhochkins/Pj5sn/1/

给你!

于 2012-09-19T12:37:17.610 回答
0

我使用的解决方案有点不同。首先,我创建一些结构并将div内容移动到里面:

var $storage=$('<div/>').append($("#mydiv").children());

现在我可以克隆剩余的“shell”并移动到内容的适当部分:

$("#mydiv").clone(true,true).attr("id","d1")
     .appendTo($(document.body))
      .append($(":first-child",$storage));

http://jsfiddle.net/KyTZ6/

也许它看起来太复杂了,但我的任务是将一个 HTML 表(~30 x 30)分成六个部分,我在建议的克隆和清除​​方面遇到了性能问题。

于 2013-05-03T13:46:46.080 回答