Javascript DOM树重复进行操作

时间:2010-11-19 07:25:17

标签: javascript dom

由于页面的DOM树是活动的并且始终反映在浏览器中,因此在不影响实际渲染树的情况下,为某种目的修改此DOM树的最佳方法是什么?假设我的目的是交换某些子节点,看看DOM树仍然有多么相似。

创建重复树是唯一的解决方案吗?如果是,是否有这样做的功能?或者我是否需要编写自己的函数来创建树的副本。我不需要元素对象的所有属性,因此我可以创建一个更简单的对象,其中包含一些指向兄弟和子节点的属性。

3 个答案:

答案 0 :(得分:6)

您可以在其他节点上使用document.cloneNode(true)或相同的方法。 cloneNode克隆任何节点,true表示它应该是递归的(深层)。显然,这可能会在大页面上产生显着的性能成本。

答案 1 :(得分:2)

如果你愿意使用jQuery:

var clone = $("selectorForSomeElement(s)").clone();

clone现在是元素结构的副本。

然后,您可以使用克隆来完成您喜欢的任何实验。

答案 2 :(得分:0)

也许可以考虑一下许多优秀的JavaScript库,例如: jQuery的。这些允许您轻松复制文档的部分甚至整个DOM,并从DOM中存储该appart。

如果您需要推出自己的解决方案,首先要了解Resig关于文档片段的帖子:http://ejohn.org/blog/dom-documentfragments/

祝你好运。