如何保持所选元素's节点的值(而不是引用)

How can I hold the selected element's node by value (and not reference) in Javascript?

本文关键字:引用 节点 何保持 元素      更新时间:2024-07-06

我不得不删除body中的所有内容,除了DOM中的图像。所以,这就是我所做的。

  1. 将img标记存储在变量中。

    var img_nodes = document.getElementsByTagName('img');

  2. 删除了body 中的所有内容

    var body_node = document.getElementsByTagName('body'); body_node[0].innerHTML = ''

  3. 添加存储的img节点作为子

    for each (child in img_nodes){ body.appendChild(child); }

但是在我运行了body_node[0].innerHTML = ''之后,img_nodes变成了undefined

我想发生这种情况是因为元素节点作为对象(作为引用)存储在列表中。如何保存选定的img_nodes对象?

您可以在清除正文内容之前克隆图像节点。请参阅cloneNode上的文档。示例:

var cloned_nodes = [];
for each (child in img_nodes){
    cloned_nodes.push(child.cloneNode(true));
}