Hallo, ich hoffe mir kann hier jemand helfen ich komme nicht weiter. Bei der letzten Funktion getCatInfo, verliere ich meine XML Datei und ich weiß nicht wie ich in der Funktion auf sie zugreifen soll. Habe etliches probiert und was dort aktuell steht ist nicht korrekt.
Javascript:
function getKitties() {
var xcat = new XMLHttpRequest();
xcat.onreadystatechange = function() {
//if (xcat.readyState == 4 && xcat.status == 200 ) {
if (this.readyState == 4 && this.status == 200) {
//myCat(xcat.repsonseXML);
myCat(this);
//getCatInfo(this);
}
};
xcat.open("GET", "cats.xml", true);
xcat.send();
}
function myCat(cx) {
//var i;
var xDoc = cx.responseXML;
var output = '<form>';
var cat = xDoc.getElementsByTagName("cat");
output += '<select id ="cat_select" onchange="catSelect()" >';
for (var i = 0; i < cat.length; i++) {
output += '<option value ="' + i + '">' +
cat[i].getElementsByTagName("name")[0].childNodes[0].nodeValue +
'</option>'
}
output += '</select>';
output += '</form>';
document.getElementById("cat_name").innerHTML = output;
}
function catSelect() {
var selectBox = document.getElementById("cat_select");
var catIndex = selectBox.options[selectBox.selectedIndex].value;
getCatInfo(catIndex);
}
/* Diese Funktion funktioniert nicht und var iDoc = i.responseXML; ist komplett falsch, war bloß ein Versuch.
*/
function getCatInfo(i) {
//var i;
var iDoc = i.responseXML;
var cat = i.getElementsByTagName("cat");
var output = '';
output +=
'<li>: ' + cat[i].getElementsByTagName("image")[0].childNodes[0].nodeValue + '</li>';
output +=
'<li> Traits: ' + cat[i].getElementsByTagName("traitsSection")[1].childNodes[3].nodeValue + '</li>';
output +=
'<li> Life Durance: ' + cat[i].getElementsByTagName("years")[0].childNodes[0].nodeValue + '</li>';
output +=
'<li> Size in inches: ' + cat[i].getElementsByTagName("size")[0].childNodes[0].nodeValue + '</li>';
document.getElementById("cat_info").innerHTML = output;
}