无法将属性“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 错误不起作用;未捕获的 TypeError:无法设置 null 的属性(设置“innerHTML”)[重复]