だんだん心魅かれてく 2019-05-15 19:47 采纳率: 50%
浏览 243

小白求救!各位大神麻烦帮我看看这个select显示的内容为什么不变化

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>

        <script type="text/javascript">

            //这个方法是点击年份下拉框后显示1900至今的所有年份
            function GetYear() {
                var yearNode = document.getElementById("year");

                //要调用Date的方法,就必须创建其对象,不能直接用类名调用
                var date = new Date();

                //这里获取的是从1900年到现在的经过的年数
                var year = date.getFullYear();
                //alert(time);//测试代码

                //要对之前的数据进行删除,否则会累加,不能对i进行变化,否则会无法全部删除
                //在删除之前要先获取yearNode的子节点个数
                var children = yearNode.childNodes;

                //这里之前出错了,因为忘记加上.length了
                for (var i = 2; i < children.length;) {
                //alert(children.length);
                    yearNode.removeChild(children[i]);
                }
                //yearNode.length = 1;

                //这里是将各个年份作为option添加进代表年份的select下拉框中
                for (var i = 1900; i <= year; i ++) {
                    var option = document.createElement("option");
                    option.innerHTML = i;
                    //option.value = i;
                    yearNode.appendChild(option);
                }
            }

            //这个方法是年份下拉框的内容发生变化时会运行的内容
            function ChooseTime() {
                /*var yearNode = document.getElementById("year");

                //要调用Date的方法,就必须创建其对象,不能直接用类名调用
                var date = new Date();

                //这里获取的是从1900年到现在的经过的年数
                var year = date.getFullYear();
                //alert(time);//测试代码

                yearNode.length = 1;

                //这里是将各个年份作为option添加进代表年份的select下拉框中
                for (var i = 1900; i <= year; i ++) {
                    var option = document.createElement("option");
                    option.innerHTML = i;
                    yearNode.appendChild(option);
                }*/

                //月份
                var monthNode = document.getElementById("month");

                monthNode.length = 1;

                for (var i = 1; i <= 12; i ++) {
                    var option = document.createElement("option");
                    option.innerHTML = i;
                    option.value = i;
                    monthNode.appendChild(option);
                }

                //日期
                var dateNode = document.getElementById("date");

                dateNode.length = 1;

                if(monthNode.value == 1|| monthNode.value == 3|| monthNode.value == 5|| monthNode.value == 7|| monthNode.value == 8|| monthNode.value == 10|| monthNode.value == 12) {
                    for (var i = 1; i <= 31; i ++) {
                        var option = document.createElement("option");
                        option.innerHTML = i;
                        dateNode.appendChild(option);
                    }
                } else if (monthNode.value == 4|| monthNode.value == 6|| monthNode.value == 9|| monthNode.value == 11) {
                    for (var i = 1; i <= 30; i ++) {
                        var option = document.createElement("option");
                        option.innerHTML = i;
                        dateNode.appendChild(option);
                    }
                } else if(monthNode.value == 2&& yearNode.value%4 == 0) {
                    for (var i = 1; i <= 29; i ++) {
                        var option = document.createElement("option");
                        option.innerHTML = i;
                        dateNode.appendChild(option);
                    }
                } else if(monthNode.value == 2&& yearNode.value%4 != 0) {
                    for (var i = 1; i <= 28; i ++) {
                        var option = document.createElement("option");
                        option.innerHTML = i;
                        dateNode.appendChild(option);
                    }
                }

            }

        </script>

    </head>
    <body>
        <select id="year" onclick="GetYear()" onchange="ChooseTime()">
            <option>请选择</option>
        </select>年
        <select id="month" onchange="ChooseTime()">
            <option>请选择</option>
        </select>月
        <select id="date">
            <option>请选择</option>
        </select>日
    </body>

</html>

情况就是这么个情况,option倒是添加进去了,而且onchange也触发了,但是年份那个框显示的内容就是不变化,不知道问题出在哪了,小白求各位大神解救。

  • 写回答

1条回答 默认 最新

  • 老杨、 2019-05-16 14:07
    关注

    跑了一下你的代码。是月份点击的问题吧。。
    你这明显有问题。。onchange 触发 你拼接的月份。点击月份触发onchange 重新拼接。死循环

    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!