我有一个小脚本,用Javascript抓取文件和输出。然后在那个输出后我想编辑innerHTML。
但它说不能设定它。 “未捕获的TypeError:无法设置属性'innerHTML'为null”
这就是我所拥有的:
function call_file(file,div_id){
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById(div_id).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET",file,true);
xmlhttp.send();
}
call_file('test.php','main'); //main = div_id to display content in
document.getElementById('total').innerHTML = 'test';
我的test.php有:
<div id="total"></div>
我想知道它为什么不能设置?
答案 0 :(得分:1)
您设置innerhtml的调用是在async中发生的状态更改事件之前发生的。在根据预测的添加标记修改dom之前,您必须确保完成Ajax调用。
答案 1 :(得分:0)
将此行的第二个参数从“main”更改为“total”,因为那是DIV,您希望内容位于:
call_file( 'test.php的', '主'); // main = div_id以
显示内容