javascript:克隆对象及其节点

发布于 2024-11-30 12:09:01 字数 353 浏览 2 评论 0原文

我似乎无法在其他问题中找到我想要的东西。我想知道是否有办法克隆一个对象及其 DOM 节点。我已经尝试过:

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

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

newObj = oldObj.cloneNode(true);

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

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

I couldn't seem to find quite what I'm looking for in any other question. I am wondering if there is a way to clone an object and its DOM nodes. I have tried:

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

but this does not clone any of the nodes, and :

newObj = oldObj.cloneNode(true);

but this does not clone the object that gives the cloned nodes their functionality and stores a large part of information pertaining to the nodes. My intent was to have the original object defined when the page loads, then clone it and hide it, and then be able to clone that object later again.

I have considered just cloning the DOM nodes and then recreating the object each time, but the object is large and takes a lot of code to define all of its properties and methods.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

青芜 2024-12-07 12:09:01

正确的 jQuery 方法:

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

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

这直接来自 马嘴 - 马是John Resig<​​/a>。

The proper jQuery way:

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

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

And that's straight from the horse's mouth - the horse being John Resig.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文