javascript - 在这种情况下,innerhtml 和 appendChild 之间的区别
问题描述
我试图识别innerHTML 和appendChild 之间的区别。我知道 innerHTML 会清除当前节点的内容并用新内容替换它并重新解析它。但是,我看到结果不符合我的期望。怎么会这样?(我正在使用谷歌浏览器)
window.addEventListener("load", function() {
var a = document.createElement("h1");
var b = document.createTextNode("Hello World");
a.appendChild(b);
document.getElementById("1").innerHTML = a; //result = [object HTMLHeadingElement]
var c = "<h1>HEllo WORLD</h1>";
document.getElementById("2").innerHTML = c ; //result = Hello World
});
解决方案
您的问题有答案:innerHTML 在目标文本节点中“按原样”替换内容。因此,如果您不向 innerHTML 函数提供字符串,它将显示“toString”应用于您提供的对象的结果。在您的情况下,“a”是一个 [object HTMLHeadingElement]。
推荐阅读
- c# - EF Core 和多对多 HttpPUT 不起作用
- python - Spyder 返回 set() 即使它不应该
- javascript - 在固定位置创建粘性 Div 的问题
- c# - 感染时如何将项目添加到列表框?
- java - 如何正确组合谓词过滤器?
- python - 将ascii字符添加到spark中的数据框
- c# - 请求被中止:无法创建 SSL/TLS 安全通道,但正在使用 Postman / CURL
- ms-word - MS Word 邮件合并:组织每 n 条记录?
- python - 如何在 python 中将 mongodb 文档集合转换为 numpy 数组?
- activemq - 如果无法访问应用程序启动队列,则 ActiveMQ failoverTransport 重新连接失败