0

エラー

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>");

    }
}

この response[i] が未定義なのはなぜですか?

4

3 に答える 3

3

それはi < size、配列インデックスがから0である必要がありますlength-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]が未定義になるとき

于 2013-09-06T05:55:33.147 に答える
0

このようなものはうまくいくでしょう

for (var i = 0; i <= (size - 1); 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>");
    }
于 2013-09-06T05:59:14.653 に答える