我有些东西我无法理解如何在AJAX中完成它。我的页面中有一个侧边栏和div“内容”。侧边栏由按钮组成,并且点击它调用经典函数:
function loadDoc(url) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
document.getElementById("content").innerHTML = xhttp.responseText;
}
};
xhttp.open("GET", url, true);
xhttp.send();
}
加载内容中按钮的“url”。好吧,在这一点上一切都好。现在这个网址之一,比如“TheUrl”,是一个包含标题等的文档,还有一个div“列表”,在这个列表中我想加载一个XML文件。我有功能
function loadXML() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
myFunction(xhttp);
}
};
xhttp.open("GET", "file.xml", true);
xhttp.send();
}
function myFunction(xml) {
var i;
var xmlDoc = xml.responseXML;
var table="<ul>";
var x = xmlDoc.getElementsByTagName("ITEM");
for (i = 0; i <x.length; i++) {
table += "<li>" +
x[i].getElementsByTagName("ELEMENT")[0].childNodes[0].nodeValue +
"</li>"
};
table += "</ul>";
document.getElementById("list").innerHTML = table;
}
但我不知道如何在loadDoc(“TheUrl”)之后加载函数loadXML(),以便Xml数据出现在div内容中创建的div列表中......我很清楚? :d
我想在侧边栏中找到类似的内容:
<ul>
<li><button type="button" onclick=loadDoc("OtherUrl.html")>OtherUrl</button></li>
<li><button type="button" onclick=loadDoc("TheUrl.html").done(loadXML())>TheUrl</button></li>
</ul>
提前感谢您的帮助。
答案 0 :(得分:1)
你可以在第一个AJAX调用的 onreadystaechange 事件中调用 loadXML 函数,如下所示:
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
document.getElementById("content").innerHTML = xhttp.responseText;
// call the other function
loadXML();
}