我正在做一個項目,我不使用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