Javascript 出于某种原因,document.getElementById().innerHTML无法工作?
我有一个具有相同值的跨度Javascript 出于某种原因,document.getElementById().innerHTML无法工作?,javascript,php,html,Javascript,Php,Html,我有一个具有相同值的跨度 echo "<span id='msgNotif1' class='badge' style='position:relative;right:5px;bottom:10px;'>".$number."</span>"; 问题是这个值仍然存在并且没有改变, 尝试取消对第一个警报的注释会显示一个具有正确值的警报,但当我尝试对其进行注释时,第二个警报从未执行,这让我意识到document.getelementbyid().innerhtml是一
echo "<span id='msgNotif1' class='badge' style='position:relative;right:5px;bottom:10px;'>".$number."</span>";
问题是这个值仍然存在并且没有改变,
尝试取消对第一个警报的注释会显示一个具有正确值的警报,但当我尝试对其进行注释时,第二个警报从未执行,这让我意识到document.getelementbyid().innerhtml是一个不起作用的警报,已经使用了几个小时,
任何帮助都将不胜感激。
提前感谢您的错误消息
无法将属性'innerHTML'设置为null“
表示:
document.getElementById("msgNotif1")
正在返回null
。这可能是由于以下几个原因造成的:
id=“msgNotif1”
的元素id=“msgNotif1”调用元素“
尚未加载。如果您在文档的
部分执行代码,而不是在
的末尾或响应DOMContentLoaded
事件,则通常会发生这种情况document.getElementById(“msgNotif1”)
id=“msgNotif1”
元素的HTML有关如何在加载当前页面后不使用jQuery之类的框架运行Javascript的一般说明,请参见以下回答:您的错误消息
无法将属性“innerHTML”设置为null“
表示:
document.getElementById("msgNotif1")
正在返回null
。这可能是由于以下几个原因造成的:
id=“msgNotif1”
的元素id=“msgNotif1”调用元素“
尚未加载。如果您在文档的
部分执行代码,而不是在
的末尾或响应DOMContentLoaded
事件,则通常会发生这种情况document.getElementById(“msgNotif1”)
id=“msgNotif1”
元素的HTML有关如何在加载当前页面后不使用jQuery之类的框架运行Javascript的一般说明,请参见以下回答:您的错误消息
无法将属性“innerHTML”设置为null“
表示:
document.getElementById("msgNotif1")
正在返回null
。这可能是由于以下几个原因造成的:
id=“msgNotif1”
的元素id=“msgNotif1”调用元素“
尚未加载。如果您在文档的
部分执行代码,而不是在
的末尾或响应DOMContentLoaded
事件,则通常会发生这种情况document.getElementById(“msgNotif1”)
id=“msgNotif1”
元素的HTML有关如何在加载当前页面后不使用jQuery之类的框架运行Javascript的一般说明,请参见以下回答:您的错误消息
无法将属性“innerHTML”设置为null“
表示:
document.getElementById("msgNotif1")
正在返回null
。这可能是由于以下几个原因造成的:
id=“msgNotif1”
的元素id=“msgNotif1”调用元素“
尚未加载。如果您在文档的
部分执行代码,而不是在
的末尾或响应DOMContentLoaded
事件,则通常会发生这种情况document.getElementById(“msgNotif1”)
id=“msgNotif1”
元素的HTML有关在加载当前页面后如何在不使用jQuery之类的框架的情况下运行Javascript的一般说明,请参见以下回答:您在控制台中收到此错误,因为它在脚本运行时不存在。如果脚本运行时未加载元素、ID不相同或html中不存在元素,则可能会导致此问题。如果在加载元素之前引用该元素,请添加一个在页面加载时执行的函数 您可以使用JQuery
$(document).ready(function(){
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();
});
或者使用纯Javascript创建事件
window.onload = function(){
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();
};
有效的观点是,使用纯Javascript执行Ajax请求比使用JQuery需要更多的代码。这就是为什么我(和其他许多人)对所有执行的Ajax请求都使用JQuery的原因。JQuery有许多用于Ajax的方法,这些方法将节省大量时间和代码,从长远来看,会将文件大小减少几个字节,因为使用JQuery,代码会被重用。您在控制台中收到此错误,因为在脚本运行时它不存在。如果脚本运行时未加载元素、ID不相同或元素