jQuery 使用append() 时是进行深拷贝还是浅拷贝

发布于 2024-12-20 05:15:11 字数 219 浏览 0 评论 0原文

示例代码:

jQueryElement.append(jQueryOtherElement.remove("#some-selector"))

这会复制我的元素并附加它,还是会实际使用 DOM 对象?

基本上,我想知道上面的代码是否使用innerHTML,如果是,是否有一种方法(在jQuery中?)在从另一个位置删除DOM节点后附加它们。

Example code:

jQueryElement.append(jQueryOtherElement.remove("#some-selector"))

Will this make a copy of my element and append it or will it actually use the DOM objects?

Basically, I'm wondering if the above code is using innerHTML and if so, is there a way (in jQuery?) to append the DOM nodes after removing them from another location.

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

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

发布评论

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

评论(2

何处潇湘 2024-12-27 05:15:11

它实际上会使用 .remove() 调用删除的 DOM 对象 - 它不使用innerHTML,而是实际的 DOM 节点。无需复制,因为之前的 DOM 对象已从 DOM 中删除并且可以插入。

如果你看一下 jQuery 1.7 代码,remove 函数在内部调用:

elem.parentNode.removeChild( elem )

它只是从 DOM 中删除节点。这些节点都保留在 jQuery 对象中,因此当您在该 jQuery 对象上调用追加时,它们仍然可以通过任何复制或转换直接附加。

It will actually use the DOM objects removed by the .remove() call - it is not using innerHTML, but rather the actual DOM nodes. There is no need to copy as the previous DOM objects were removed from the DOM and are available to be inserted.

If you look at the jQuery 1.7 code, the remove function internally calls:

elem.parentNode.removeChild( elem )

which just removes the node from the DOM. The nodes are all left in the jQuery object so when you then call append on that jQuery object, they are all still available to be appended directly with any copy or conversion.

卖梦商人 2024-12-27 05:15:11

是的,它将使用 DOM 对象。它们仍然存在,只是不在另一个元素内。 jQuery 对象并不神奇:)

Yes, it'll use the DOM objects. They still exist, just not inside another element. jQuery objects aren't magic :)

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