无法设置null的属性'innerHTML'?

时间:2014-07-04 10:00:16

标签: javascript

为什么我会收到错误或"未捕获类型错误:无法设置属性< innerHTML'是吗?"。  这是我的代码

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();
  }

4 个答案:

答案 0 :(得分:0)

document.getELementById(“ans”)可能没有结果。首先调试。

答案 1 :(得分:0)

尝试以下代码:

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

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

答案 2 :(得分:0)

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

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

似乎是this question的副本。

我建议您按照此处所述调试“ ans”。

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

在此方法中使用link,并在全局对象null中使用一个链接。

希望如此。

答案 3 :(得分:0)

有不同的可能原因,如所讨论的,只是想为可能与我的问题相同的人添加。

就我而言,我缺少一个如下所示的close 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