2012-06-13 83 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