用不可替换的 InnerHTML 替换 document.write

Posted

技术标签:

【中文标题】用不可替换的 InnerHTML 替换 document.write【英文标题】:Replacing document.write with a non-replacing InnerHTML 【发布时间】:2014-05-07 09:59:57 【问题描述】:

我目前正在使用 import.io 进行网络抓取信息。我正在从天气网站上抓取数据,以显示统计项目的单个邮政编码的不一致范围。

document.write("<i>" + k + "</i>" + "<p>" + d.data[k] + "</p>");

我的问题是这个 document.write 擦除了我所有的页面内容并用纯 json 数据替换它。我尝试使用innerhtml,但我只得到了爬虫的最后一个数据结果。

是否有某种方法可以实现不会覆盖先前写入的数据的 appendChild 或 InnerHTML?

参考: http://import.io/data/integrate/#js

【问题讨论】:

document.body.insertAdjacentHTML("beforeend", "&lt;i&gt;" + k + "&lt;/i&gt;&lt;p&gt;" + data[k] + "&lt;/p&gt;") document.body.appendChild(document.createElement("i")).textContent = k; document.body.appendChild(document.createElement("p")).textContent = data[k]; 感谢工作。再次感谢 Cookie Monster……你是个天才。被这样的问题难住了,我感觉很糟糕。 不客气。很高兴它有帮助。 【参考方案1】:
document.body.insertAdjacentHTML
  ("beforeend", 
   "<i>" + k + "</i><p>" + data[k] + "</p>"
  )     

document.body.appendChild
  (
  document.createElement("i")
  ).textContent = k; 

document.body.appendChild
  (
  document.createElement("p")
  ).textContent = data[k];

【讨论】:

以上是关于用不可替换的 InnerHTML 替换 document.write的主要内容,如果未能解决你的问题,请参考以下文章

用点击的 span 标签的 innerHTML 替换占位符值

用其 innerHTML 替换锚点

Javascript:帮助用 innerHTML 的 '<br>' 替换 '<div>'!

替换的 InnerHtml 显示为字符串

1个函数独立替换4个不同ID的innerHTML

为啥随着 innerHTML 变大,替换 innerHTML 会变慢?