2012-06-13 120 views
0

我想創建一個包含日期遞減的下拉列表。例如,從當前月份開始,格式爲「6 2012」,一直到「2011年3月」。JavaScript創建HTML日期下拉列表

我有一個jsfiddle這是代碼:

var TheStartDate = new Date(2011, 4, 2); 
var TheCurrentDate = new Date(); 

TheCurrentDate = new Date(TheCurrentDate.getUTCFullYear(), 
          TheCurrentDate.getMonth(), 2); 

var TheHTML = '<select>'; 

do { 

    TheHTML = TheHTML + '<option>'; 
    TheHTML = TheHTML + (TheCurrentDate.getUTCMonth() + 1).toString() + " "; 
    TheHTML = TheHTML + TheCurrentDate.getFullYear(); 
    TheHTML = TheHTML + '</option>'; 

    TheCurrentDate.setMonth(TheCurrentDate.getUTCMonth() - 1); 

} while (TheStartDate.getTime() !== TheCurrentDate.getTime()); 

TheHTML = TheHTML + '</select>'; 

alert(TheHTML); 

document.getElementById('TheTestDiv').innerHTML = TheHTML; 

我不是太遠,但我覺得我失去了一些東西明顯。

感謝您的建議。

+0

似乎做工精細(我在本地瀏覽器進行了測試)。你甚至不需要任何JS庫,最後一行可能是類似 document.getElementById('#TheTestDiv')。innerHTML = TheHTML; 當我嘗試像這樣 - 它按設計工作。 –

+0

@Trekstuff:選擇控件仍然不呈現。 – frenchie

+0

好的,沒關係,我修好了。問題在於,它僅在TheStartDate的前一個月停止。我只需要從TheStartDate減去一個月,它工作正常。 – frenchie

回答

1

試試這個:

var toDate = new Date(2011, 2, 1); 
var theDate = new Date(); 

var jDateSelect = jQuery('<select />'); 

do { 
    var jDateOption = jQuery('<option />'); 
    jDateOption.text((theDate.getUTCMonth() + 1).toString() + " " + theDate.getUTCFullYear()); 
    theDate.setMonth(theDate.getMonth() - 1); 
    //add the jQuery 
    jDateSelect.append(jDateOption); 
} while (theDate.getTime() >= toDate.getTime()); 



$('#TheTestDiv') 
    //clear 
    .html('') 
    //append object 
    .append(jDateSelect); 
+0

謝謝你的回答,我修好了;往上看。 – frenchie