作业题为什么写出来那么乱,请问老师有优化版的吗
来源:7-7 JS对表单元素进行设置4
慕盖茨8087740
2019-03-21 20:50:47
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Math.random()</title>
<script>
var time = new Date;
var year = time.getFullYear();
function Indate(object,start,end){
for (var i = start; i <= end; i++) {
object.options.add(new Option(i,i));
}
}
function Intime(){
var yyyy = document.getElementById('yyyy');
var mm = document.getElementById('mm');
var dd =document.getElementById('dd');
Indate(yyyy,1990,year);
Indate(mm,1,12);
Indate(dd,1,31);
var n = yyyy.length;
//默认选择中间数
yyyy.selectedIndex = Math.round(n/2);
}
function mm(){
var yyyy = document.getElementById('yyyy');
var mm = document.getElementById('mm');
var dd =document.getElementById('dd');
var ddd =parseInt(mm.value);
if ( ddd == 4 || ddd == 6 || ddd == 9 || ddd == 11) {
if (dd.options.length>=30) {
for (var i = 31; i > 30; i--) {
dd.options.remove(i);
}
}else if(dd.options.length<30){
for (var i = dd.options.length; i < 31 ; i++) {
dd.options.add(new Option(i,i));
}
}
}
else if ( ddd == 2) {
var year = yyyy.value;
if ((year % 4 ==0&&year % 100 !=0)|| year % 400 == 0) {
if (dd.options.length<29) {
for (var i = 29; i < 29 ; i++) {
dd.options.add(new Option(i,i));
}
}
for (var i = 31; i >= 29; i--) {
dd.options.remove(i);
}
}else{
for (var i = 31; i >= 28; i--) {
dd.options.remove(i);
}
}
}
else{
for (var i = dd.options.length; i <= 31 ; i++) {
dd.options.add(new Option(i,i));
}
}
}
</script>
</head>
<body onload="Intime()">
<select id="yyyy" name="" onchange="mm()" ></select>年
<select id="mm" name="" onchange="mm()"></select>
<select id="dd"></select>
</body>
</html>
1回答
同学写的已经很好了呦,这种方法写出来是比老师讲的那种多一点,麻烦一点,如果同学觉得太麻烦,可以选择用老师讲解的方法写呦,会更加简洁。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题