第一个循环在第二个循环开始时停止

first loop stops when the second starts

本文关键字:循环 开始时 第二个 第一个      更新时间:2023-09-26

我想在另一个for循环中使用for循环来获取xml文件的内容。问题是,当第二个循环开始时,第一个循环就停止了。
javascript代码:

var x = xmlDoc.getElementsByTagName('usr');
for (i=0; i <= x.length; i++) {
    var y = x[i].childNodes;
    for(n=0; n <= y.length; n++) {
        var z = y[n].childNodes[0];
        document.write(z.nodeValue);
    }
}

xml code:

<usr><age>30</age><location>uk</location></usr>
<usr><age>25</age><location>usa</location></usr>

输出为:

30uk

应该是30uk25usa

在这两个循环中,您都将迭代一个循环多次。

i=0; i<=x.length应为i = 0; i < x.length,内环相同。

多次迭代会产生错误,从而中断执行

尝试将您想要的总结果存储在第一个循环之外,然后在外部循环完成后使用document.write():

var x = xmlDoc.getElementsByTagName('usr');
var zTotal = '';
for (i=0; i < x.length; i++) {
    var y = x[i].childNodes;
    for(n=0; n < y.length; n++) {
        var z = y[n].childNodes[0];
        zTotal += z.nodeValue;
    }
}
document.write(zTotal);