javascript:克隆对象及其节点

时间:2011-08-19 06:16:02

标签: javascript jquery object cloning clonenode

在任何其他问题中,我似乎无法找到我正在寻找的东西。我想知道是否有办法克隆一个对象及其DOM节点。我试过了:

newObj = jQuery.extend(true, {}, oldObj);

但这不会克隆任何节点,并且:

newObj = oldObj.cloneNode(true);

但这不会克隆为克隆节点提供其功能的对象,并存储与节点有关的大部分信息。我的目的是在页面加载时定义原始对象,然后克隆并隐藏它,然后再次能够克隆该对象。

我考虑过只是克隆DOM节点,然后每次重新创建对象,但是对象很大并且需要大量代码来定义它的所有属性和方法。

2 个答案:

答案 0 :(得分:4)

只需使用$(element).clone();

即可

答案 1 :(得分:2)

正确的jQuery方式:

// Shallow copy
var newObject = jQuery.extend({}, oldObject);

// Deep copy
var newObject = jQuery.extend(true, {}, oldObject);

直接来自horse's mouth - 马是John Resig