Ale*_*ani 3 html javascript ajax
我正在使用 javascript / ajax 开发一个网络应用程序。
问题是,在我的应用程序(一种社交网络)中,我需要读取有关用户的信息(数据库中的帖子)。为此,我使用 PHP 专用服务与数据库交互。该服务返回主页的 HTML 格式。
现在,我通过 AJAX 调用使用此服务来引入 HTML 并将其注入到我的页面中。问题是,当我尝试使用 javascript 从注入的 HTML 中获取元素时:
document.getElementById('commentsArea_xxx').innerHTML=xmlhttp.responseText;
Run Code Online (Sandbox Code Playgroud)
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();
}
Run Code Online (Sandbox Code Playgroud)
这应该可以做到:
$('body').ajaxComplete(function () {
document.getElementById('commentsArea_xxx').innerHTML=xmlhttp.responseText;
});
Run Code Online (Sandbox Code Playgroud)
这将在每次 ajax 调用后执行。
更新: 如果您尚未将元素添加到 DOM,请查看 @TJ Crowder 的答案。
| 归档时间: |
|
| 查看次数: |
11041 次 |
| 最近记录: |