为啥我无法在文档上设置 innerHTML? [复制]

Posted

技术标签:

【中文标题】为啥我无法在文档上设置 innerHTML? [复制]【英文标题】:Why am I unable to set innerHTML on the document? [duplicate]为什么我无法在文档上设置 innerHTML? [复制] 【发布时间】:2021-09-01 08:17:01 【问题描述】:

我正在尝试创建一个您单击的按钮,它将计算用户的年龄,而我的 javascript 代码将使用 innerhtml 将用户的年龄写入文档本身。我不明白为什么它不起作用。我没有得到任何回应,甚至没有错误。

这是我的 JavaScript:

let btn = document.getElementById("btn");

  btn.addEventListener('click',howOldAreYou)

  function howOldAreYou()

  let age= document.getElementById("year").value
  let currentYear = 2021
  
  let howOld= currentYear - age;

  document.innerHTML= howOld;


【问题讨论】:

Documents 没有 innerHTML 属性。创建一个是没有意义的。 Duplicate of javascript document.innerHTML set content of whole document。 【参考方案1】:

您正在寻找document.body.innerHTMLdocument.documentElement.innerHTML

document 不是元素,因此没有innerHTML 属性。

【讨论】:

@carringtonCodes 如果有帮助,请考虑接受! :) How do I accept an answer?【参考方案2】:

我认为问题在于你没有正确使用innerHTML元素属性,它应该是yourElementId.innerHTML而不是document.innerHTML

试试这个:

btn.addEventListener('click',function()
  let age = document.getElementById("year").value;
  let currentYear = 2021;
  let howOld = currentYear - age;
  result.innerHTML = howOld;
);
<button id="btn">Calculate</button>
<input id="year"/>
<div id="result"></div>

【讨论】:

以上是关于为啥我无法在文档上设置 innerHTML? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

为啥IE在设置innerHTML时会出现意外错误

Dart:如何动态设置文档正文innerHTML

未捕获的类型错误:无法将属性“innerHTML”设置为 null

当通过 innerHTML 添加元素时,为啥我的动画会“重播”?

为啥点击设置innerHTML会触发Chrome上的两个解析事件?

无法在 setTimeout 内设置 innerHTML