0
我需要打印月份日曆,從下拉列表中選擇月份選項。我使用double while循環創建表格(一個用於行,第二個用於填充具有天數的行) 。問題是我的代碼打印天數達到35個月,除了2月份的28個月外。在javaScript中打印超過所需值的循環內的循環
var list1 = document.getElementById("list1");
list1.onclick = function(){
var div1 = document.getElementById("monthCal");
div1.innerHTML="";
populateMonth(this.selectedIndex);
console.log(this.selectedIndex);
};
function how_many_days(month){
switch (month){
case 0:
case 2:
case 4:
case 6:
case 7:
case 9:
case 11:
days_of_month=31;
break;
case 10:
case 8:
case 5:
case 3:
days_of_month=30;
break;
case 1:
days_of_month=28;
break;
}
return days_of_month;
}
function populateMonth(monthindex){
var writeTo =document.getElementById("monthCal");
var table123 = document.createElement("table");
var tbody123 = document.createElement("tbody");
var days= how_many_days(monthindex);
var i =1;
while(i<days){
var j=0;
var tableRow = document.createElement("tr");
while(j<7){
var tableData = document.createElement("td");
var txtNode = document.createTextNode(i+"");
tableData.appendChild(txtNode);
tableRow.appendChild(tableData);
++j;
++i;
}
tbody123.appendChild(tableRow);
}
var conatiner1 = document.getElementById("monthCal");
table123.appendChild(tbody123);
conatiner1.appendChild(table123);
}
Year: <input type="text" size="4" maxlength="4"/>
Month:<select id="list1">
<option id="month1" value="Jan">January</option>
<option id="month2" value="Feb">Feburary</option>
<option id="month3" value="March" selected>March</option>
<option id="month4" value="April">April</option>
<option id="month5" value="May">May</option>
<option id="month6" value="June">June</option>
<option id="month7" value="July" >July</option>
<option id="month8" value="Aug">August</option>
<option id="month9" value="sept">September</option>
<option id="month10" value="oct">October</option>
<option id="month11" value="Nov">November</option>
<option id="month12" value="Dec">December</option>
</select><hr>
<div id="monthCal">
</div>
'while(j <7)'將始終做7個單元格。你還需要在那裏添加一個條件,以便在最後停止。 –
#Sami感謝您的快速響應,但我會非常感激,如果你給我的代碼片段.. –
使用相同的條件爲'我'在外部循環,並結合運營商,那麼它將停止正確。 –