使用for循环设置变量

时间:2013-10-28 15:17:26

标签: javascript loops variables

我有以下javascript

information0 = xmlDoc.getElementsByTagName("info")[0].textContent; 
information1 = xmlDoc.getElementsByTagName("info")[1].textContent;
information2 = xmlDoc.getElementsByTagName("info")[2].textContent; 
information3 = xmlDoc.getElementsByTagName("info")[3].textContent;
information4 = xmlDoc.getElementsByTagName("info")[4].textContent;
information5 = xmlDoc.getElementsByTagName("info")[5].textContent;
information6 = xmlDoc.getElementsByTagName("info")[6].textContent;

我想为每个索引号创建一个新的var。共有600个。我怎么能用for循环呢?

提前致谢

4 个答案:

答案 0 :(得分:2)

这里最好的事情是使用数组,而不是一堆个别变量。

var information = [];
var index;
var info = xmlDoc.getElementsByTagName("info");
for (index = 0; index < info.length; ++index) {
    information[index] = info[index].textContent;
}

答案 1 :(得分:1)

嗯......用数组?另外,不要反复拨打getElementsByTagName,这很贵!

var tags = xmlDoc.getElementsByTagName('info'), l = tags.length, i, information = [];
for( i=0; i<l; i++) information[i] = tags[i].textContent;

如果您使用的是合理的最新浏览器:

var information = [].map.call(xmlDoc.getElementsByTagName('info'),function(a) {return a.textContent;});

答案 2 :(得分:0)

像这样:

var information = [],
    i,
    elements = xmlDoc.getElementsByTagName("info"),
    n = elements.length;
for (i = 0; i < n; ++i) {
    information[i] = elements[i].textContent;
}

答案 3 :(得分:0)

您需要使用数组。

var infoTags = xmlDoc.getElementsByTagName("info"),
    i = 0,
    len = infoTags.length,
    values = []; //array literal syntax, you could also use new Array()

for (; i < len; i++) {
    values.push(infoTags[i].textContent); //push the textContent into the array
}

你应该注意的事情:

  • 我缓存了getElementsByTagName的结果,而不是多次执行查询。
  • 我缓存了length的{​​{1}}属性。这避免了在每次迭代时访问infoTags的多个属性查找。 JavaScript中的属性查找很昂贵。

要了解如何使用数组,请查看Array对象。   -