我正在做一个项目,我不使用jQuery。如何使用JavaScript从Ajax响应字符串中正确提取HTML元素?
我想用Ajax从新页面加载帖子,但我不知道应该如何从返回的字符串中正确提取特定HTML元素或内容。
下面是HTML(我试图加载新内容的部分)的样子;
<div id="posts">
<div class="post"> 1 </div>
<div class="post"> 2 </div>
<div class="post"> 3 </div>
<div class="post"> 4 </div>
<div class="post"> 5 </div>
<!--posts-->
</div>
<div id="loadmore">Load More</div>
下面是我试过的脚本的样子(它的工作原理)。
function load(path) {
var req = new XMLHttpRequest();
req.onreadystatechange = function() {
if (req.readyState == 4 && req.status == 200) {
var resp = req.responseText;
var cont = resp.slice(resp.indexOf('id="posts">') + 11, resp.indexOf("<!--posts-->"));
document.getElementById("posts").innerHTML = document.getElementById("posts").innerHTML + cont;
}
}
req.open("GET", path, true);
req.send();
}
var page = 1;
document.getElementById("loadmore").onclick = function() {
page++;
var pathToLoad = "/page/" + page;
load(pathToLoad);
}
我觉得我做的最糟糕的方式,我的问题是如何加载的内容是里面的“#posts”在新页面中更好的办法?
谢谢!
我只知道我可以使用“getElementByClassName”和“document”之类的东西,意思是类似的; “document.getElementByClassName( '类')”。 检查我的项目和不同的浏览器... – Person
除非你使用的Internet Explorer版本少于8,否则你不应该有问题。让我kwow :) – gmast
对于IE,我只支持IE9 +。我主要在Firefox工作。 我还没有能够使事情工作,现在的'd.getElementsByClassName(“职位”)。长'返回零。 它不应该,我试图简化页面,并查看错误。 是的,我会更新,谢谢! – Person