不知道哪里错了,请老师帮忙看看

不知道哪里错了,请老师帮忙看看

// function show(){
// 	// document.getElementById("text").value="999";
// 	var xb=document.getElementsByName("xb");
// 	var xinbie;
// 	if(xb[0].checked){
// 		xinbie="nan";
// 	}else{
// 		xinbie="nv";
// 	}
// 	alert(xinbie);
// }
function ymd(){
	var yy=document.getElementById("yy");
	var date=new Date();
	var year=parseInt(date.getFullYear());
	// for (var i = 1996;i <=year;i++) {
	// 	yy.options.add(new Option(i,i));
	// }
	var mm =document.getElementById("mm");
	// for (var i = 1; i <=12; i++) {
	// 	mm.options.add(new Option(i,i));
	// }
	var dd=document.getElementById("dd");
	// for(var i=1;i<31;i++){
	// 	dd.options.add(new Option(i,i));
	// }
	initSelect(yy,1996,year);
	initSelect(mm,1,12);
	initSelect(dd,1,31);
	var n=yy.length;
	yy.selectedIndex=Math.round(n/2);
}
function initSelect(obj,start,end){
	for(var i=start;i<=end;i++){
		obj.options.add(new Option(i,i));
	}
}
// function change(){
// 	var yy=document.getElementById("yy");
// 	var mm=document.getElementById("mm");
// 	var dd=document.getElementById("dd");
// 	var m=parseInt(mm.value);
// 	var y=parseInt(yy.value);
// 	var endDay;
//     if(m==4||m==6||m==9||m==11){
//     	endDay=30;
//     }else if(m==2){
//     	endDay=28;
//     	if(((y%4==0)&&(y%100!=0))||(y%400==0)){
//     		endDay=29;
//     	}
//     }else{
//     	endDay=31;
//     }
//     dd.options.length=0;
//     initSelect(dd,1,endDay);
// }
function change(){
	var yy=document.getElementById("yy");
	var mm=document.getElementById("mm");
	var dd=document.getElementById("dd");
	var m=parseInt(mm.value);
	var y=parseInt(yy.value);
	var endDay;
	for(var i=30;i>26;i--){
		dd.options.remove(i);
	}
    if(m==4||m==6||m==9||m==11){
    	endDay=30;
    }else if(m==2){
    	endDay=28;
    	if(((y%4==0)&&(y%100!=0))||(y%400==0)){
    		endDay=29;
    	}
    }else{
    	endDay=31;
    }
    initSelect(dd,28,endDay);
}
function dele(){
	var dd=document.getElementById("dd");
	var n=dd.options.length;
	for(var i=n-1;i>=0;i--){
		dd.options.remove(0);
	}
}
function initLogo(){
	var logoSelect=document.getElementById("logoSelect");
	for(var i=1;i<=5;i++){
	logoSelect.options.add(new Option(i,i));
}
}
function changeLogo(){
	var logoSelect=document.getElementById("logoSelect");
	var logo=document.getElementById("logo");
	var n=logoSelect.value;
	logo.src="../image/"+n+".jpeg";
}
var flag=true;
function checkAll(){
	var interest=document.getElementsByName("interest");
	var all=document.getElementById("all");
	for(var i=0;i<interest.length;i++){
		interest[i].checked=flag;
	}
	if(flag){
		all.value="全不选";
	}
	else{
		all.value="全选";
	}
	flag=!flag;
}
function checkanti(){
	var interest=document.getElementsByName("interest");
	for(var i=0;i<interest.length;i++){
		interest[i].checked=!interest[i].checked;
	}
}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript" src="one.js"></script>
</head>
<body onload="ymd(),initLogo()">
<form id="form">
<!-- <label>用户名:</label>
<input type="text" id="text"  name="" value="123"><br>
<input type="radio" name="xb" value="1" checked="checked">男
<input type="radio" name="xb" value="0">女<br>
<input type="button" id="btn" name="" onclick="show()" value="btn"> -->
<select id="yy" name="yy" onchange="change()"></select>年
<select id="mm" name="mm" onchange="change()"></select>月
<select id="dd" name="dd"></select>日
<input type="button" name="btn" id="btn" onclick="dele()" value="删除"><br>
<img src="../image/1.jpeg" id="logo">
<select id="logoSelect" onchange="changeLogo()"></select><br>
<input type="checkbox" name="interest">游泳
<input type="checkbox" name="interest">爬山
<input type="checkbox" name="interest">滑冰
<input type="checkbox" name="interest">瑜伽
<input type="button" name="all" id="all" value="全选" onclick="checkAll()">
<input type="button" name="anti" id="anti" value="反选" onclick="checkanti()">
</form>
</body>
</html>

http://img1.sycdn.imooc.com//climg/5d1cf6ca00014c7a06770433.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好!很抱歉老师这里看错了,出错的原因是因为同学删除之后dd的长度为0,所以再添加时是重28开始的,所以总是出现28之后的。可参考以下思路修改:

在删除28之后的数据时首先判断一下dd的长度是否是大于28,如果大于再删除,添加日期时,从dd.length+1开始添加(比如目前是28个,要从29开始添加):

http://img1.sycdn.imooc.com//climg/5d1dac420001ba0511600769.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~


  • 慕娘0924178 提问者 #1
    问题解决了,谢谢老师
    2019-07-04 15:47:09
好帮手慕柯南 2019-07-04 11:55:53

同学你好!

  1. 同学在触发了change()方法后,把所有的日都删除了

    http://img1.sycdn.imooc.com//climg/5d1d78260001199b03700094.jpg

  2. 在重新加载日的时候,同学是从28号开始的,所以导致了每次都是从28开始

    http://img1.sycdn.imooc.com//climg/5d1d786a0001e7fb03780067.jpg

  3. 同学将开始的日期改为1即可

    http://img1.sycdn.imooc.com//climg/5d1d78b30001c46b07080158.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 慕娘0924178 #1
    change方法我只删除了28号以后的日期,1到27我没有删除啊
    2019-07-04 14:44:18
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师