JavaScript 8-5的课后作业
// 根据大小月自动改变天数
function selectYmd(){
var yyyy=document.getElementById('yyyy');
var mmmm=document.getElementById('mmmm');
var dddd=document.getElementById('dddd');
var m=parseInt(mmmm.value);
var dayEnd;
if(m==2){
dayEnd=28;
var y=parseInt(yyyy.value);
if ((y % 4==0 && y % 100!=0) || y % 400==0){
dayEnd=29;
}
for(i=dddd.length;i>=dayEnd;i--){
dddd.options.remove(i);
}
}else if(m==4 || m==6 || m==9 || m==11){
if(dddd.length == 28){
initSelect(dddd,28,30);
}else if(dddd.length == 29){
initSelect(dddd,29,30);
}else{
dddd.options.remove(30);
}
}else{
initSelect(dddd,dddd.length,31);
}
}
老师,我这里出现了2个问题
1.只有一开始先改成闰年,2月才会变29天,其他情况只会28天
2.开始从大月换成小月,小月会是30天,再换成大月就不执行了30天了,但是换成2月再换小月就又会是30天了
23
收起
正在回答
1回答
同学,你好,同学应将for循环语句放在条件判断语句外,将i的值与dayEnd做比较,若大于则去掉多余的天数,下标从0开始,因此应是i-1移除掉最后一个
function selectYmd() {
var yyyy = document.getElementById("yyyy");
var mm = document.getElementById("mm");
var dd = document.getElementById("dd");
var m = parseInt(mm.value);
var dayEnd;
if (m == 4 || m == 6 || m == 9 || m == 11) {
dayEnd = 30;
} else if (m == 2) {
dayEnd = 28;
y = parseInt(yyyy.value);
if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0) {
dayEnd = 29;
}
} else {
dayEnd = 31;
}
for (i = dd.length; i > dayEnd; i--) {
dd.options.remove(i - 1);
}
for (i = dd.length; i < dayEnd; i++) {
dd.options.add(new Option(i + 1, i));
}
}
Python全栈工程师2020
- 参与学习 人
- 提交作业 5211 份
- 解答问题 2433 个
Facebook曾声称“只招全栈工程师”!全栈用人需求猛增,市面人才紧缺。 0基础进击Python全栈开发,诱人薪资在前方!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星