我正在開發一個使用javascript/ajax的Web應用程序。ajax調用後getElementById不工作
問題是,在我的應用程序(一種社交網絡)中,我需要閱讀有關用戶的信息(數據庫中的帖子)。爲此,我使用一個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();
}
感謝它的所有作品! –
@AlessioMelani你應該接受一個答案,如果它對你有幫助。和平!! – Monodeep