javascript - 由于某种原因, document.getElementById().innerHTML 不起作用?

标签 javascript php html

我有一个具有相同值的跨度..

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 。发生这种情况可能有以下几个原因:

  1. 您的页面中没有包含 id="msgNotif1" 的元素.
  2. 您在文档完成加载之前调用此代码,因此具有 id="msgNotif1" 的元素尚未加载。如果您在 <head> 中执行代码,通常会发生这种情况。文档的部分而不是 <body> 的最后部分或响应 DOMContentLoaded事件。
  3. 您的内容是动态加载的(不在原始页面 HTML 中),并且您正在调用 document.getElementById("msgNotif1")在加载动态内容之前。
  4. 您遇到一些 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/

相关文章:

javascript - 如果取消,js 确认刷新页面

javascript - 如何顺时针或逆时针旋转图像,以较短者为准?

javascript - 如何使用ajax从php获取多个数据并将其存储在选择选项中

php - 出现在 PHP 文件开头的垃圾代码

php - 想要显示按月分组的得分最高者的详细信息

Javascript:添加类后更改元素的 onclick 操作

html - AngularJS 按需加载字体

javascript - Angular Google map 自定义标记

php - 用文本替换空表单域

html - 如何使用数组的索引值并将其传递给 HTML 模态,这样我就可以在不使用 Angular 7 中的循环的情况下显示数据