0

ファイルを取得してJavascriptで出力する小さなスクリプトがあります。次に、その出力の後で、innerHTMLを編集します。

しかし、それはそれを設定することはできません。"Uncaught TypeError:nullのプロパティ'innerHTML'を設定できません"

これは私が持っているものです:

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

この行の2番目のパラメーターを「main」から「total」に変更します。これはDIVであるため、次のコンテンツが必要です。

call_file('test.php'、'main'); // main = div_idで、コンテンツを表示します

于 2012-06-01T00:29:42.493 に答える