0

我正在尝试克隆一个包含内容、表单元素和附加事件的 div。一旦我克隆了 div,我想重命名它。问题是当我重命名我克隆的 div 时,源 div 也被重命名。克隆现有 div 并附加所有事件的最有效方法是什么,然后创建一个具有所有相同特征但名称不同的新 div?

我正在使用 jquery 1.6

我可以使用以下方法成功克隆该项目,但是当我尝试重命名它时,源也会被重命名。

var $oldObject = $('#tabs-1');

var newObject = jQuery.extend(true, {}, $oldObject);
newObject.attr('id',"newid");

<div id="tabs-1">
<fieldset>
<div>
<input id="Radio1" type="radio" /> 
</div>
</fieldset>
</div>
4

2 回答 2

1

您当前的代码只是深度复制了代表您的元素的 jQuery 结构,而不是元素本身。因此,当您调用.attr()它时,它仍然是被修改的原始元素。

要正确克隆 HTML 元素及其事件,请执行以下操作:

var $oldObject = $('#tabs-1');
var $newObject = $oldObject.clone(true);

$newObject.attr('id', 'newid');

有关详细信息,请参阅http://api.jquery.com/clone/ 。

于 2011-11-02T09:46:19.983 回答
0

你试过克隆吗?http://api.jquery.com/clone/

于 2011-11-02T09:46:24.920 回答