大家好我试图在Javascript中使用FOR循环从脚本所在的外部XML文件给出的数据中填充表:
<script type="text/javascript">
var xmlDoc;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","data.xml",false);
//xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
var x=0;
document.write("<table border='1'>");
for (var i=0;i<x.numstudents;i++)
{
x=xmlDoc.getElementsByTagName("students");
var studentstr= "student_"+(i+1);
stustr= x[i].getElementsByTagName(studentstr)[0].childNodes[0].nodeValue;
document.write(x[i].getElementsByTagName(studentstr)[0].childNodes[0].nodeValue);
sum=0;
for (var j=0;j<numtests;j++)
{
var mystr= "test_"+(j+1);
document.write("<tr><td>");
tststr= x[i].getElementsByTagName(mystr)[0].childNodes[0].nodeValue;
document.write(x[i].getElementsByTagName(mystr)[0].childNodes[0].nodeValue);
}
}
document.write("</table>");
</script>
以下代码是XML代码中的学生之一:
<CATALOG>
<numstudents>10</numstudents>
<numtests>7</numtests>
<students>
<student_1>
<name> B </name>
<test_1>2 </test_1>
<test_2>2 </test_2>
<test_3>2 </test_3>
<test_4>2 </test_4>
<test_5>2 </test_5>
<test_6>2 </test_6>
<test_7>2 </test_7>
</student_1>
</students>
</CATALOG>
我面临的问题是关于字符串以及如何将其放入表中。无论如何都可以建议解决这个问题。 注意:我正在尝试学习JavaScript,所以请帮助,不要混淆我。
答案 0 :(得分:3)
我建议您尝试以下方法来调试代码:
1)检查XML文档是否实际加载到变量xmlDoc
中。执行alert(xmlDoc)
或console.log(xmlDoc)
。它的初始化没有显示在您给定的代码中。
2)其次,检查您是否已关闭所有括号。在代码第8行中,document.write()没有正确关闭。像这样的简单错误将导致整个脚本中断。要查看更多错误,请尝试使用浏览器控制台(在Chrome中 CTRL-SHIFT-J ,FF&amp; IE F12 )