4

在javascript循环中,我正在生成xml这样的:

for (m = 0; m < t.length; m++) {
     var arr1 = t[m].split("\t");
     s = "'<row dc= '" + arr1[0] + "' al='" + arr1[1] + "' msg='" + arr1[2] + "' />'";
     alert(s);
     //s = s.join(' '); 
    }

忘记了t变量和所有。通过运行此代码,我得到以下格式的 s 值:

<row dc = "abc" al="56" msg="dkaj" />

在第二次迭代中,它显示如下:

<row dc = "abwwc" al="56w" msg="dkajad" />

依此类推,直到m<t.length满意为止。我想在每次迭代中加入列表。加入他们所有人之后,我应该以这种方式获得:

<row dc = "abc" al="56" msg="dkaj" /><row dc = "abwwc" al="56w" msg="dkajad" /> and so on..

我试图通过在评论部分写的加入来做到这一点,但对我没有用。我做错了什么?

4

1 回答 1

2

最好的方法是在循环外定义一个字符串并附加到它;

var v = '';
for (m = 0; m < t.length; m++) {
     var arr1 = t[m].split("\t");
     s = "'<row dc= '" + arr1[0] + "' al='" + arr1[1] + "' msg='" + arr1[2] + "' />'";
     alert(s);
     v += s;
    }

alert(v);

如果您仍想使用join(),请在其上创建v一个数组和push()元素(注意这join()是一个数组方法,不适用于字符串)

var y = [];
for (m = 0; m < t.length; m++) {
     var arr1 = t[m].split("\t");
     s = "'<row dc= '" + arr1[0] + "' al='" + arr1[1] + "' msg='" + arr1[2] + "' />'";
     alert(s);
     y.push(s);
    }

alert(y.join(''));

您会很高兴看到我在示例中尝试遵守您的变量命名约定(即无意义的字符)。

于 2012-09-03T22:17:01.770 回答