我的跨度相同。
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