2

我有一个重新加载当前页面的 AJAX 函数。现在我不想重新加载整个页面,是否可以在 http.responseText 中获取例如 div#footer 的 innerHTML?我真正想做的是:

document.getElementById("footer").innerHTML = http.responseText.getElementById("footer");

但是当然不可能那样做,而且我不想重写整个页面,例如,如果存在 GET 变量,它只会打印出页脚。有什么想法吗?谢谢!

4

2 回答 2

3

XMLHttpRequest 并将其解析为字符串?

h=http.responseText;
s1=h.substring(h.indexOf('<div id="footer"'));
s1=s1.substring(s1.indexOf('>')+1);
s1=s1.substring(0,s1.indexOf('</div>'));
document.getElementById("footer").innerHTML=s1

那里

但是如果您在页脚中有更多 div,这将抓住它直到下一个 div 结束 - 在页脚之后创建一个新 div</div> e.g.: </div><div id="end"></div>

而不是

s1=s1.substring(0,s1.indexOf('</div>'));

做:

s1=s1.substring(0,s1.indexOf('</div><div id="end">'));
于 2012-09-01T14:02:55.217 回答
1

你应该使用document.createDocumentFragment.

于 2012-09-01T14:11:42.983 回答