0

我有一个小脚本,它可以抓取一个文件并以 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>

我想知道为什么它不能设置?

4

2 回答 2

1

您设置 total 的 innerhtml 的调用发生在异步发生的状态更改事件之前。在根据预测的添加标记修改 dom 之前,您必须确保您的 Ajax 调用已完成。

于 2012-06-01T00:31:20.687 回答
0

将此行的第二个参数从 'main' 更改为 'total',因为那是 DIV,您希望内容如下:

call_file('test.php','main'); //main = div_id 显示内容

于 2012-06-01T00:29:42.493 回答