老师您看一下我这种写法行不行,有没有什么问题

来源:7-9 JS对表单元素进行设置5

慕田峪2241258

2021-08-19 10:57:02

function selectYmd2(){
var yyyy = document.getElementById("yyyy");
var mm = document.getElementById("mm");
var dd = document.getElementById("dd");
var y = parseInt(yyyy.value);
var m = parseInt(mm.value);
var d = dd.length;
var day;
if (m==4 || m==6 || m==9 || m==11) {
dd.options.remove(d-1);
} else if(m==2){
for (var i=d-1;i>28;i--){
dd.options.remove(i);
day = i;
}
if((y%4==0 && y%100!=0) || y%400==0){
for (var i=d-1;i>29;i--){
dd.options.remove(i);
day = i;
}
}
}
}

2.老师remove既然是按照索引号删除内容的,那么最后一个元素的位置是不是内容的长度减1

写回答

1回答

好帮手慕小班

2021-08-19

同学你好,1、测试拼接同学的代码,并没有正确完成赋值内容,对应日期有误,比如

如下所示,4月份被设置为只有28天了

http://img.mukewang.com/climg/611e0c76094d00f703720380.jpg

因为同学并没有在设定初始值,直接月份为4的判断条件中直接减一,这样每次单击再次减一,就会出现如上情况,而且在设置时间后,没有将length重置为0,这样就会出现之前的值再次影响结果的情况。

http://img.mukewang.com/climg/611e0d5209e214f706190421.jpg

同学可以参考如下形式来尝试实现

http://img.mukewang.com/climg/611e0e8d0906719106040503.jpg

    ​2、是的,最后一个元素就是长度减一。

祝学习愉快~

0

0 学习 · 9666 问题

查看课程