2011-06-08 14 views

答えて

6

HTML

<form id="someform"> 
<select id="year"></select> 
</form> 

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

    for (var i = 1; i <= 5; i++) { 
     $("#timeSelector").append(

      $("<option></option>") 
       .attr("value", currentYear) 
       .text(currentYear) 

     ); 
     currentYear++; 
    } 

デモを見るのJavaScript

var myselect = document.getElementById("year"), year = new Date().getFullYear(); 
var gen = function(max){do{myselect.add(new Option(year++,max--),null);}while(max>0);}(5); 

少し良くJavaScript関数:

var myselect = document.getElementById("year"), 
    startYear = new Date().getFullYear() 
    count = 5; 

(function(select, val, count) { 
    do { 
    select.add(new Option(val++, count--), null); 
    } while (count); 
})(myselect, startYear, count); 

jsFiddlenew jsFiddle

4

あなたがそうのような年のリストを得ることができる...

var date = new Date, 
    years = [], 
    year = date.getFullYear(); 

for (var i = year; i < year + 5; i++) { 
    years.push(i); 
} 

jsFiddle

それとも実際にあなたのselect要素を作成するための...

var date = new Date, 
    year = date.getFullYear(), 
    select = document.createElement('select'); 

for (var i = year; i < year + 5; i++) { 

    var option = document.createElement('option'), 
     yearText = document.createTextNode(i); 

    option.appendChild(yearText); 
    select.add(option); 
} 

select.name = 'year'; 

document.body.appendChild(select); 

jsFiddle

+0

'var date = new Date、'は 'var date = new Date()'でなければなりません。これはコンストラクタを呼び出すためです。 –

+0

@IsaacGregsonそれは可能かもしれませんが、必須ではありません。 – alex

3

あなたはjQueryのを使用している場合は、タスクは次のように達成することができます:jsFiddle

0
var currentYear = new Date().getFullYear(); 
    for (var i = 0; i < 5; i++) { 
      $("#years").append(
       $('<option/>') 
       .attr("value", currentYear + i) 
       .text(currentYear + i)); 
     }