Javascript中的关联数组循环

Javascript中的关联数组循环,javascript,Javascript,不确定哪里出错,但下面的代码似乎将我的选择选项值列为0-11,而不是1-12 动态生成的HTML <select id="Month" name="month"> <option value="0">January</option> <option value="1">Feburary</option> <option value="2">March</option> <option va

不确定哪里出错,但下面的代码似乎将我的选择选项值列为0-11,而不是1-12

动态生成的HTML

<select id="Month" name="month"> 
  <option value="0">January</option>
  <option value="1">Feburary</option>
  <option value="2">March</option>
  <option value="3">April</option>
  <option value="4">May</option>
  <option value="5">June</option>
  <option value="6">July</option>
  <option value="7">August</option>
  <option value="8">September</option>
  <option value="9">October</option>
  <option value="10">November</option>
  <option value="11">December</option>
</select>
JAVASCRIPT

var months = new Array();
        months[1]   =   'January';
        months[2]   =   'Feburary';
        months[3]   =   'March';
        months[4]   =   'April';
        months[5]   =   'May';
        months[6]   =   'June';
        months[7]   =   'July';
        months[8]   =   'August';
        months[9]   =   'September';
        months[10]  =   'October';
        months[11]  =   'November';
        months[12]  =   'December';
        for(var i = 0; i<12; i++ ){
           month  = months[i+1];
           option ="<option value='"+i+"'>"+month+"</option>"
           options = options+option;
        }
        $('#month').html(' <select id="' + this.id +'" name="' + this.id + '">'+options+'</select>');
更改此项:

option ="<option value='"+(i+1)+"'>"+month+"</option>"
或者更好:

for(var i = 1; i<=12; i++ )
那就换线吧

option ="<option value='"+i+"'>"+month+"</option>"


在for循环中,没有增加第1行i+1中i的值。因此,循环为0-11。你为什么不跟我打个电话

for (var i = 1; i < 13; ++i){
}

Javascript从0开始,而不是1,这就是为什么你看到0-11而不是1-12,你产生零,因为你的i是零。HTML也在输出您所说的内容。Javascript不支持带有命名索引的数组—没有关联数组—只是作为一个侧节点。
for (var i = 1; i < 13; ++i){
}