2012-06-13 6 views
0

날짜가 내림차순으로 포함 된 드롭 다운을 만들고 싶습니다. 예를 들어, "6 2012"형식의 현재 월을 "3 2011"까지 시작하십시오.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