我有以下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循环呢?
提前致谢
答案 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对象。 -