为什么这个javascript循环打印出数字而不是选项?

时间:2014-04-10 00:20:53

标签: javascript for-loop html-select

function createShiftsForm(day){
    document.getElementById("shifts").innerHTML += day + ' morn: <select name="' + day + 'm"><option value="0" selected>0</option>';
    for (i=1; i <= 20; i++){
    document.getElementById("shifts").innerHTML += '<option value="' + i + '">' + i + '</option>';
}
    document.getElementById("shifts").innerHTML += '</select>';


}

当打印出来时,它会打印所有21个数字,但只打印数字0作为选择器的选项。

1 个答案:

答案 0 :(得分:2)

传递给innerHTML的字符串无效(您可以一步一步地执行此操作,因此select元素没有结束标记)。

function createShiftsForm(day){
    var container = day + ' morn: <select name="' + day + 'm"><option    value="0" selected>0</option>';
    for (i=1; i <= 20; i++){
        container += '<option value="' + i + '">' + i + '</option>';
    }
    container += '</select>';
    document.getElementById("shifts").innerHTML = container;
}