2015-10-21 3 views
1

Обычный вопрос, но серьезно, почему моя петля не работает? Какие ошибки были я сделал, любая помощь будет оценена :)Javascript for-loop not looping

XML

<?xml version="1.0" encoding="utf-8"?> 
<School> 
    <child> 
    <name>john</name> 
    <dob>28-09-2000</dob> 
    <age>15</age> 
    <add>jgdkhcjgvbv</add> 
    <phone>12345678</phone> 
    </child> 
    <child> 
    <name>henry</name> 
    <dob>19-09-2001</dob> 
    <age>14</age> 
    <add>kjdfndsjnlae</add> 
    <phone>23456789</phone> 
    </child> 
    <child> 
    <name>luke</name> 
    <dob>27-04-1999</dob> 
    <age>16</age> 
    <add>ksmfodnzsksl</add> 
    <phone>34567890</phone> 
    </child> 
</School> 

HTML

<html> 
<head> 
<script type="text/javascript" > 
    var xmlObject, docObject, childarray, cname, cdob, cage; 
    xmlObject = new XMLHttpRequest(); 
    xmlObject.open("GET","school.xml",false); 
    xmlObject.send(); 
    docObject = xmlObject.responseXML; 
    childarray=docObject.getElementsByTagName("child"); 

    for (var i = 0; i<childarray.length; i++) { 
     cname = docObject.getElementsByTagName("name")[i].childNodes[0].nodeValue; 
     document.write("Name : " + cname + "<BR/>"); 

     cdob = docObject.getElementsByTagName("dob")[i].childNodes[0].nodeValue; 
     document.write("Dob : " + cdob + "<BR/>"); 

     cage = docObject.getElementsByTagName("age")[i].childNodes[0].nodeValue; 
     document.write("Age : " + cage + "<BR/>"); 

     cadd = docObject.getElementsByTagName("add")[i].childNodes[0].nodeValue; 
     document.write("Add : " + cadd + "<BR/>"); 

     cphone = docpb.getElementsByTagName("phone")[i].childNodes[0].nodeValue; 
     document.write("Phone : " + cphone + "<BR/>"); 

    } 
</script> 
<title>school</title> 
</head> 
<body> 
</body> 
</html> 

Что я хочу сделать, это напечатать имя, DOB, возраст, адрес, телефон за «n» количество студентов одновременно. В коде отображаются только данные первого ребенка.

Welp

+0

Ваш текущий вывод указывает на то, что 'childarray' имеет длину один, поэтому вы должны определить, почему это так. –

ответ

0

Вы пытались добавить "=" в

вар я = 0; i < = childarray.length; i ++