javascript / ajax を使用して Web アプリケーションを開発しています。
問題は、私のアプリケーション (一種のソーシャル ネットワーク) で、ユーザーに関する情報 (データベースへの投稿) を読み取る必要があることです。これを行うには、データベースとのやり取りで PHP 専用サービスを使用します。このサービスは、メイン ページ用にフォーマットされた HTML を返します。
ここで、このサービスを AJAX 呼び出しで使用して、HTML を取り込み、ページに挿入します。問題は、JavaScript を使用して挿入された HTML から要素を取得しようとすると、次のようになることです。
document.getElementById('commentsArea_xxx').innerHTML=xmlhttp.responseText;
getElementById
戻りますnull
。
問題は、AJAX 呼び出しの後、ブラウザがドキュメントを更新しないため、「commentsArea_xxx」がドキュメントに存在しないことだと思います。
この問題を解決するにはどうすればよいですか?
これは私のコードです:
function moreComments(id){
var footerIcon = document.getElementById('footer');
footerIcon.innerHTML="<div style='text-align:center;'><img src='images/home_selected.png' onClick='loadHome()'/><img id='cameraButton' src='images/camera.png'/><img src='images/list.png' onClick='loadMyVideo()'/></div>";
pageOld=pageCurrent;
pageCurrent=0;
document.getElementById("ajaxContent").innerHTML="<div id='wrapper' style='top:95px;'><div id='scroller'><ul id='thelist'><li style='text-align:center;'><img src='images/loading.gif' style='text-align:center;'></li></ul></div></div>";
var xmlhttp;
if (window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}
else{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
document.getElementById("commentsArea_"+id).innerHTML=xmlhttp.responseText;
loaded();
me();
setTimeout(function () {myScroll.refresh();}, 0);
}
}
xmlhttp.open("GET","home_more.php?id="+id,true);
xmlhttp.send();
}