JavaScript: клонирование объекта и его узлов - PullRequest
1 голос
/ 19 августа 2011

Я не могу найти то, что ищу, в любом другом вопросе.Мне интересно, есть ли способ клонировать объект и его DOM-узлы.Я попытался:

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

, но это не клонирует ни один из узлов, и:

newObj = oldObj.cloneNode(true);

, но это не клонирует объект, который дает клонированным узлам их функциональность и сохраняетбольшая часть информации, относящейся к узлам.Моим намерением было определить исходный объект при загрузке страницы, затем клонировать его и спрятать, а затем иметь возможность клонировать этот объект позже.

Я рассмотрел просто клонирование узлов DOM и затем воссозданиеобъект каждый раз, но объект большой и требует много кода для определения всех его свойств и методов.

Ответы [ 2 ]

4 голосов
/ 19 августа 2011

Просто используйте $(element).clone();

2 голосов
/ 19 августа 2011

Правильный способ jQuery:

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

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

И это прямо из рта лошади - лошадь Джон Резиг .

...