javascript for循环增量> 1个问题

时间:2013-07-21 18:50:14

标签: javascript html

我有这个for循环适用于i和i + 1,但是i + 2以后不起作用。 错误是:

Cannot read property 'logo_sm' of undefined

这是我的代码:

var jsonObj = JSON.parse(http_request.responseText);
var rows = '';
for(var i=0;i<jsonObj.length;i=i+2){
    rows += '<tr><td class="logo_sm">' + "<img src='"+jsonObj[i].logo_sm+"'/>" + '</td><td class="logo_sm">' + "<img src='"+jsonObj[i+1].logo_sm+"'/>" + '</td><td class="logo_sm">' + "<img src='"+jsonObj[**i+2**].logo_sm+"'/>" + '</td></tr>';
    i++;
}
document.getElementsByTagName('table')[0].innerHTML += rows;

在for循环中,如果increment是i ++且最后一列有i + 1而不是i + 2那么它就可以工作。

似乎很简单,但仍处于学习阶段。所以,我正在努力解决它。

1 个答案:

答案 0 :(得分:0)

设置for循环的方式是,您将尝试访问不存在的项目的数组索引。

如果初始化i = json.length并且每次循环增加i + 2。当i等于JSON对象的长度时,您的循环将尝试访问JSON对象加上2的元素,这些元素不存在。

如果您只是想在每个表格行中输出图像,请执行以下操作:

    var jsonObj = JSON.parse(http_request.responseText);
var rows = '';
for(var i=0;i<jsonObj.length;i++)
{
    rows += "<tr><td class='logo_sm'><img src='"+jsonObj[i].logo_sm+"'/></td></tr>";
}

document.getElementsByTagName('table')[0].innerHTML += rows;