javascript - 如何在 Javascript 中按值(而不是引用)保存所选元素的 Node ?

标签 javascript html node.js

我必须删除 body 中的所有内容(DOM 中的图像除外)。 所以,这就是我所做的。

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

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

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

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

  3. 将存储的 img Node 添加为子 Node

    对于每个(img_nodes 中的子 Node ){ body.appendChild(子); }

但是在我运行 body_node[0].innerHTML = '' 后,img_nodes 变得未定义

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

最佳答案

您可以在清除正文内容之前克隆图像 Node 。请参阅the documentation on cloneNode 。示例:

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

关于javascript - 如何在 Javascript 中按值(而不是引用)保存所选元素的 Node ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36646644/

相关文章:

node.js - 如何使 node.js 应用程序永久运行?

javascript - 如何通过 NODE.js javascript 代码中的大写转换来查询 SQL 数据库中的列。

javascript - Angular - 观察者 map 未按预期工作

javascript - 如何循环图像

javascript - css touch-action none on body, pinch-zoom on element

javascript - 如何防止在 html 日期输入中选择多个日期?

javascript - 如何在 nodejs 中组织与 DB 的交互?

javascript - 使用 Canvas 进行图像可视化。如何调整它们的大小?

javascript - 如何在不丢失分隔符且不使用正则表达式的情况下拆分字符串?

javascript - 将数组填充到表单字段中(AngularJS)