无法将属性“innerHTML”设置为 null?

Posted

技术标签:

【中文标题】无法将属性“innerHTML”设置为 null?【英文标题】:Cannot set property 'innerHTML' of null? 【发布时间】:2014-08-25 15:18:09 【问题描述】:

为什么我会收到错误或“未捕获的类型错误:无法将属性 'innerhtml' 设置为 null?”。 这是我的代码

function ajax()
 
var pathxml;
var answer;
if (window.XMLHttpRequest) 
  pathxml = new XMLHttpRequest();

else

    pathxml = new ActiveXObject("Microsoft.XMLHTTP");


pathxml.onreadystatechange= function()

    if (pathxml.readyState==4 && pathxml.status==200) 
    
         answer = pathxml.responseText;

    document.getElementById("ans").innerHTML = answer;

    
 
 pathxml.open("GET","books/ax",true);
 pathxml.send();
  

【问题讨论】:

你确定你有一个id为ans的元素吗? 向我们展示您的 HTML 代码。 id 为 ans 的元素不存在 【参考方案1】:

该元素似乎不存在或似乎与任何已知对象都不匹配 - 这就是返回 NULL 的原因。

Null 表示缺乏标识,表示变量不指向任何对象。在 API 中,通常在可以预期对象但没有相关对象的地方检索 null。

似乎是this question..的副本。

我建议您调试此处提到的“ans”..

另一个原因可能是您在构建 DOM 之前运行代码。尝试在 this 帖子中提到的 window.onload 处理程序函数中运行您的代码..

这里有一个指向方法的link 和一个指向全局对象null..的链接。

希望对您有所帮助..

【讨论】:

【参考方案2】:

可能 document.getELementById("ans") 没有结果。先调试一下。

【讨论】:

【参考方案3】:

试试这个代码:

document.getElementById("displayDiv").innerHTML = "EXPIRED";

<span id="displayDiv"></span>

【讨论】:

【参考方案4】:

所讨论的可能原因不同,只是想为可能与我遇到相同问题的人添加此内容。

在我的情况下,我缺少如下所示的关闭 div

   <!DOCTYPE HTML>
   <html>
   <head>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
   <title>Untitled Document</title>
   </head>
   <body>
   <div> //I am an open div
    <div id="hello"></div>
   <script type ="text/javascript">
       what();
       function what()
          document.getElementById('hello').innerHTML = 'hi';
       ;
   </script>
   </body>
   </html>

缺少关闭的 div 可能会导致从子级到父级或父级到子级的横向混乱,从而在您尝试访问 DOM 中的元素时导致错误

您可能还需要查看上一个问题,这里有很多不同的可能原因以及如何解决它们:Cannot set property 'innerHTML' of null

【讨论】:

以上是关于无法将属性“innerHTML”设置为 null?的主要内容,如果未能解决你的问题,请参考以下文章

无法在 XMLHttpRequest.xhttp.onreadystatechange 处将属性“innerHTML”设置为 null

React Ref:未捕获的 TypeError:无法将属性“innerHTML”设置为 null

饼图图例未显示 - 未捕获的类型错误:无法将属性“innerHTML”设置为 null

无法将属性“innerHTML”设置为空??

语法中的 innerHTML 错误不起作用;未捕获的 TypeError:无法设置 null 的属性(设置“innerHTML”)[重复]

未捕获的 TypeError:无法设置 null 的属性(设置“innerHTML”)