无法设置innerHTML的属性

时间:2012-06-01 00:24:59

标签: javascript

我有一个小脚本,用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>

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

将此行的第二个参数从“main”更改为“total”,因为那是DIV,您希望内容位于:

call_file( 'test.php的', '主'); // main = div_id以

显示内容