0

我有一个在下拉列表中选择年份的列表,如何动态生成列表。

我的代码:

 <select  id="year1">
     <option value=2012>2012</option>
     <option value=2011>2011</option>
     <option value=2010>2010</option>
 </select>

我写了一个这样的脚本,

 for(i = 0; i < 6; i++)
 {  
     document.getElementById('year1').options[i] = new Option(curr_year-i+1,curr_year-i+1);
 }        

我的疑问是如何在这里动态给出值(即 < option value="2012">2012 )。提前致谢。注意:对我来说,看重期权很重要。

4

4 回答 4

3

尝试这个

$(document).ready(function () {
    var year = 2013;
    for(i = 0; i < 6; i++){        
    $("#year1").get(0).options[$("#year1").get(0).options.length] = new Option(year, year);
        year=year+1;
    }
});

这里年份值是递增的,用于逆序使用year=year-1;

这是工作中的FIDDLE

于 2013-10-17T04:25:24.490 回答
0

尝试使用 jQueryappend将选项附加到选择中。这是动态执行的方法

var x = 2012;
for(var i=0;i<3;i++){
    $('#ddl').append($('<option></option>').val(x).html(x));
    x=x+1;
}

这是演示

于 2013-10-17T04:23:06.220 回答
0

您可以仅使用 php 将其存档 试试这个,

<select  id="year1">
   <?php $current_year=date("Y");
   for($i=1900;$i<=$current_year;$i++){
      <option value="<?php echo $i;?>"><?php echo $i;?></option>
   } ?>
</select>
于 2013-10-17T04:25:08.380 回答
0

使用纯 JavaScript

var createComboBox = function()
{
    var select = document.createElement("select"),
        year = new Date().getFullYear();

    for(var i = 0; i < 6; i++)
    {  
        var option = document.createElement("option");
        select.appendChild(option).text = year;
        select.appendChild(option).value = year;
        year += -1
    }

    document.body.appendChild(select);
}

createComboBox();

查看演示

于 2013-10-17T04:44:24.477 回答