将下拉列表从特定年份填充到当前年份

时间:2016-04-19 07:03:41

标签: javascript jquery

我正在创建一年的下拉列表。 如何自动填充下拉列表?

例如,我将在1980年添加一个下拉值,我可以使用jQuery将其填充到当前年份,所以我不需要全年输入吗?

6 个答案:

答案 0 :(得分:4)

您可以在for和当前年份之间使用1980循环,您可以通过Date对象的getFullYear()属性检索该循环。试试这个:

var html = '';
for (var i = 1980; i <= new Date().getFullYear(); i++) {
    html += '<option value="' + i + '">' + i + '</option>';
}
$('#mySelect').html(html);

Working example

如果您希望从当前年份开始并逐渐减少,可以使用负面迭代,如下所示:

for (var i = new Date().getFullYear(); i >= 1980; i--) {
    html += '<option value="' + i + '">' + i + '</option>';
}

答案 1 :(得分:2)

使用for循环并添加到字符串中这很简单:

&#13;
&#13;
Settings > Build,Execution,Deployment > Instant Run
&#13;
var nowY = new Date().getFullYear(),
    options = "";

for(var Y=nowY; Y>=1980; Y--) {
  options += "<option>"+ Y +"</option>";
}

$("#years").append( options );
&#13;
&#13;
&#13;

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getFullYear
http://api.jquery.com/append/

答案 2 :(得分:1)

您可以使用for循环(http://www.w3schools.com/js/js_loop_for.asp

function fillDates(startDate){
    yr = new Date().getFullYear();
    options = "";
    for(var i=startDate, i<=yr, i++){
        options += ("<option value = "+i+">"+i+"</option");
    }
    $("select").append(options);
}


fillDates(1908);

答案 3 :(得分:0)

我有一年以上的dorpdowns,我想为此计算从特定年份到当前年份的年份列表。评论我的最终解决方案,也许有人会发现这个有用:

function populateYearList(minYear, currentYear, selectElement){
    var max = currentYear, min = minYear;
    for (var i = min; i<=max; i++) {
        var opt = document.createElement('option');
        opt.value = i;
        opt.innerHTML = i;
        selectElement.append(opt);
    }
       //selecting current year by default and adding "selected" attribute to it
    $(selectElement).val(max)
        .find("option[value=" + max +"]")
        .attr("selected","selected");
}

调用页面加载

var selectElement = $('.select-class');
populateYearList('2015', currentYear, selectElement);

答案 4 :(得分:-1)

请参阅以下代码

<input type="text" id="inputyear">
<select id="selectyear">

</select>
<input type="button" value="Generate" onclick="FillYears()">

<script type="text/javascript">
function FillYears(){
for(var i=parseInt($("#inputyear").val());i<=(new Date().getFullYear());i++)
{
    $("#selectyear").append($("<option>"+i+"</option>"));
}
}
</script>

答案 5 :(得分:-1)

chong有很多答案,我有点让我更新我对jsFiddle的回答。

小提琴:https://jsfiddle.net/eua98tqa/8/

HTML:

<html>

  <head>
  </head>

 <body>

 <select>
 </select>

 </body>

</html>

jQuery的:

var fromYear = 1980;
var currentYear = new Date().getFullYear();

for (var i = fromYear; i <= currentYear; i++) {
 $("select").append('<option value="' + i + '">' + i + '</option>');
}