【发布时间】:2013-12-15 06:11:19
【问题描述】:
这是我的代码:
xmlhttp.onreadystatechange = function () {
if (this.readyState == 4)
if( this.status == 200) {
response = xmlhttp.responseXML;
var channel = response.documentElement;
var title = channel.getElementsByTagName("title")[0].firstChild.nodeValue;
var parent = document.getElementById("journalTitle");
parent.innerHTML = title;
var articleList = document.getElementById("articleList");
item = channel.getElementsByTagName("item");
var list = new Array();
itemSize = (channel.getElementsByTagName("item").length);
var i =0;
do{
list[i] = item[i].getElementsByTagName("title")[0].firstChild.nodeValue;
item = document.createElement("div");
item.innerHTML = list[i];
articleList.appendChild(item);
i++;
}while(i=itemSize);
}
size 变量是 22,当我写 alert(item[5].getElementsByTagName("title")[0].firstChild.nodeValue); 时,它会显示第五个元素,依此类推,但在循环内它只了解 item 的第一个元素,其余部分返回错误:
Uncaught TypeError: Cannot call method 'getElementsByTagName' of undefined
【问题讨论】:
-
while(i=itemSize)??? -
我应该写什么?
-
我用过但没用,所以我把
for改成了while。问题一定是其他的:(
标签: javascript xmlhttprequest getelementsbytagname onreadystatechange