问题描述
|
我想将DOM树的一部分分配给全局变量,以便不再使用我的变量和DOM树进行引用。 DOM树的一部分应复制到全局变量,而当我对DOM树进行更改时,则不应更改我的变量。
普通分配不会这样做。
使用代码段进行说明:
var children;
var Test {
x: function(e) {
...
children = e.target.ownerDocument.getElementsByTagName(\'body\')[0].childNodes; // rowX
...
e.target.ownerDocument.getElementsByTagName(\'body\')[0].innerHTML = somethingElse; // rowY
}
}
问题是我想在children
变量(rowX)中存储一些内容,并且rowY会改变children
变量作为副作用,因此DOM树有一些参考。
谢谢你的小费
解决方法
在这种情况下,您可能要使用
cloneNode(deep:Boolean)
方法:
var myVar = myNode.cloneNode(true);
, DOM的“按值”部分应该在哪里?
尝试完成类似任务的一种方法是使用jQuery:
var chunkByVal = $(\"#bigChunkOfDOM\").html();
, http://jsfiddle.net/KH8CA/
如果您使用jquery,这非常容易。只需抓住您的元素并将其克隆。
var backupDom = $(\"#id\").clone(true);