我的跨度相同。

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

09-18 06:17