我有一个具有相同值的跨度..
echo "<span id='msgNotif1' class='badge' style='position:relative;right:5px;bottom:10px;'>".$number."</span>";
其中 $number 有一个值..
我的js代码是..
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var val = xmlhttp.responseText;
//alert(val);
document.getElementById("msgNotif1").innerHTML = val;
//document.getElementById("msgNotif2").innerHTML = val;
alert(val);
//document.getElementById("msgNotif3").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "some page", true);
xmlhttp.send();
问题是该值仍然保留并且没有改变, 尝试取消注释第一个警报会显示具有正确值的警报,但是当我尝试对其进行评论时,第二个警报从未执行,这让我知道 document.getelementbyid().innerhtml 是不起作用的警报,一直与这几个小时, 任何帮助将不胜感激。 提前致谢
最佳答案
您的错误消息Cannot set property 'innerHTML' of null"
意味着:
document.getElementById("msgNotif1")
正在返回null
。发生这种情况可能有以下几个原因:
- 您的页面中没有包含
id="msgNotif1"
的元素. - 您在文档完成加载之前调用此代码,因此具有
id="msgNotif1"
的元素尚未加载。如果您在<head>
中执行代码,通常会发生这种情况。文档的部分而不是<body>
的最后部分或响应DOMContentLoaded
事件。 - 您的内容是动态加载的(不在原始页面 HTML 中),并且您正在调用
document.getElementById("msgNotif1")
在加载动态内容之前。 - 您遇到一些 HTML 错误,这些错误导致无法正确解析包含
id="msgNotif1"
元素的 HTML .
有关如何在不使用 jQuery 等框架的情况下加载当前页面后运行 Javascript 的通用描述,请参阅此答案:pure JavaScript equivalent to jQuery's $.ready() how to call a function when the page/dom is ready for it
关于javascript - 由于某种原因, document.getElementById().innerHTML 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32960646/