javascript - 为什么在我操作主体的 innerHTML 后 JavaScript 使 DOM 引用无效?

标签 javascript dom

我在处理一些简单的 JS 代码时发现了以下内容:

document.body.innerHTML += '<div id="div1">some text</div>';

var my_div = document.getElementById('div1');

document.body.innerHTML += '<div id="div2">some text</div>';

my_div.innerHTML = "some other text"; //doesn't work

似乎在操作父元素(主体)后,对 DOM 节点的引用无效。我在这里做错了什么?

最佳答案

当你这样做时:

document.body.innerHTML += '<div id="div2">some text</div>';

与此相同:

document.body.innerHTML = document.body.innerHTML + '<div id="div2">some text</div>';

如您所见,它替换了整个 body ,重新创建了所有元素。

关于javascript - 为什么在我操作主体的 innerHTML 后 JavaScript 使 DOM 引用无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18329507/

相关文章:

php - PHP 如何访问 div 的 'style' 属性?

javascript - 在悬停时添加类

javascript - 多日持久信号器连接模式

javascript - HipChat 机器人 JS 正则表达式

javascript - 将对象数组转换为嵌套数组

javascript - 从表单请求中删除参数

javascript - 选项卡中的嵌套选项卡( Bootstrap )

javascript - 如何避免在使用 DOM 添加和删除 html 表格行时删除第一行?

javascript - 在 node.js 中使用 XPath

JavaScript 在执行点插入元素