javascript - 在 ajax 成功回调中的 for 循环中,response[i] 未定义

标签 javascript jquery html ajax response

错误

TypeError: response[i] is undefined


    ...box' class='selectedSubjects' name='selectedSubjects' />
</td><td class='selected...

数组

[{"S_Code":"BCS-CER-IS","S_Name":"Information Systems.","C_Code":"BCS-CER","S_Status":"Active"},
{"S_Code":"BCS-CER-SD","S_Name":"Software Development.","C_Code":"BCS-CER","S_Status":"Active"},
{"S_Code":"BCS-CER-TEC","S_Name":"Computer & Network Technology","C_Code":"BCS-CER","S_Status":"Active"}]

AJAX成功回调

success: function (response) {
    var size = response.filter(function (value) {
        return value !== undefined
    }).length;
    for (var i = 0; i <= size; i++) {
        $("#subjectsTable tr:last").after("<tr class='success' data-index=" + (i + 1) + "><td><input type='checkbox' class='selectedSubjects' name='selectedSubjects' /></td><td class='selectedSCode'>" + response[i].S_Code + "</td><td class='selectedSName'>" + response[i].S_Name + "</td></tr>");

    }
}

为什么这个响应[i]未定义?

最佳答案

应该是 i < size因为数组索引来自 0length-1

for (var i = 0; i < size; i++) {
    $("#subjectsTable tr:last").after("<tr class='success' data-index=" + (i + 1) + "><td><input type='checkbox' class='selectedSubjects' name='selectedSubjects' /></td><td class='selectedSCode'>" + response[i].S_Code + "</td><td class='selectedSName'>" + response[i].S_Name + "</td></tr>");

}

所以当 i == size response[i] 的值将是未定义的

关于javascript - 在 ajax 成功回调中的 for 循环中,response[i] 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18650772/

相关文章:

jquery - 使用 jQuery 将样式应用于单击元素的所有实例

jquery - 显示时间倒计时进度条

javascript - backbone.js:将属性设置为现有值时触发的模型事件?

javascript - 填满时将数据条目移动到下一个字段 - JS 制表

javascript - 当鼠标悬停在其中一个元素上时,突出显示具有相同类的所有元素

jquery - JQuery 中的字符串比较?

javascript - 重定向到 PDF 下载的新页面

python - 带有漂白剂的 Flask 和 Jinja2,图像 HTML 不工作

javascript - 不确定如何使这个计算器功能工作

javascript - 如何使用map函数在第一个react组件中添加图像并忽略其余组件