在javascript中设置父节点

时间:2012-10-18 14:41:40

标签: javascript parent xmlnode

当我通过执行object.cloneNode(true)克隆javascript中的对象时,parentNode在新副本中为null。 我试图设置它但没有成功。 我的代码看起来像这样:

old_DataRoot = DataRoot.cloneNode(true);
old_DataRoot.parentNode=DataRoot.parentNode.cloneNode(true);

也尝试过:

    old_DataRoot = DataRoot.cloneNode(true);
    old_DataRoot.parentNode.appendChild(DataRoot.parentNode.cloneNode(true));

这两个选项都给我“old_DataRoot.parentNode为null或不是对象” 我做错了什么?

非常感谢, 约尼。

3 个答案:

答案 0 :(得分:1)

是的,这是真的,parentNode是一个只读属性。

在第二种情况下,您需要知道只有一个节点附加到DOM。它的dataRoot仍有父节点,克隆的结果(你称之为old_DataRoot)是未附加的:

dataRoot.parentNode.appendChild(newDataRoot = dataRoot.cloneNode(true));

答案 1 :(得分:1)

这是你想要做的吗?

old_DataRoot = DataRoot.cloneNode(true);
DataRoot.parentNode.appendChild(old_DataRoot);

答案 2 :(得分:1)

如果你正在尝试

  

备份原始DataRoot以便恢复它   后面。

然后考虑

// Backup
var DataRootBackup = {
    nodes: DataRoot.cloneNode(true),
    parent: DataRoot.parentNode
};

// Restore
DataRootBackup.parent.appendChild( DataRootBackup.nodes );