八.日历下拉列表 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> </head> <body> <select id="nian" onclick="Dian()"></select>年 <select id="yue" onclick="Dian()"></select>月 <select id="ri"></select>日 </body> <script type="text/javascript"> Nian(); Yue(); Ri(); function Nian() { var a=new Date(); //获取当前时间 var b=parseInt(a.getFullYear()); //获取当前年份并取整 var c; //定义变量c for(var i=b-5;i<b+6;i++) //设定获取的年份范围 { if(i==b) //当i等于当前年份时设为默认年份 { c+="<option selected='selected'>"+i+"</option>"; } else //c+=意为c=c+ 这里用for循环将字符串进行累加,得到范围内所有年份并赋值给c { c+="<option>"+i+"</option>"; } } document.getElementById("nian").innerHTML=c; //修改下拉内容为c } function Yue() { var a=new Date(); var b=parseInt(a.getMonth()+1); var c; for(var i=1;i<13;i++) { if(i==b) { c+="<option selected='selected'>"+i+"</option>" ; } else { c+="<option>"+i+"</option>"; } } document.getElementById("yue").innerHTML=c; } function Ri() { var n=document.getElementById("nian").value; //日期与年月不一样,需要判断条件才能确定每个月有多少天,先设天数为31天,当为闰年且为2月时为29天,其余为28天。 var y=document.getElementById("yue").value; //当为4.6.9.11月时为30天,其余为31天 var ts=31; var a=new Date(); var b=parseInt(a.getDate()); var c; if(y==2) { if(n%4==0&&n%100!=0||n%400==0) { ts=29; } else { ts=28; } } if(y==4||y==6||y==9||y==11) { ts=30; } for(var i=1;i<ts+1;i++) { if(i==b) { c+="<option selected='selected'>"+i+"</option>"; } else { c+="<option>"+i+"</option>"; } } document.getElementById("ri").innerHTML=c; } function Dian() //日期函数所获得的天数是根据默认年月的,当年月改变时需要一个事件再次调用日期函数. { Ri() } </script> </html>