在Javascript中按值分配

时间:2011-06-25 13:28:48

标签: javascript firefox-addon pass-by-value

我想将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树的引用。

谢谢您的提示

3 个答案:

答案 0 :(得分:3)

在这种情况下,您可能希望使用cloneNode(deep:Boolean)方法:

var myVar = myNode.cloneNode(true);

答案 1 :(得分:1)

DOM的“按价值”部分应该在哪里?

你可以尝试用jQuery实现这样的事情:

var chunkByVal = $("#bigChunkOfDOM").html();

答案 2 :(得分:1)

http://jsfiddle.net/KH8CA/

如果你使用jquery这很容易。抓住你的元素并克隆它。

var backupDom = $("#id").clone(true);