问答详情
源自:9-4 区别getElementByID,getElementsByName,getElementsByTagName

任务三自己写的,不能运行,关于几个细节,代码中有标出

任务三自己写的,不能运行,关于几个细节,代码中有标出,请帮我看一看,是哪里导致代码不能运行呢?另外,排名最前的代码里,为什么把j当作一个数组来用呢?

        function checkone(){

            var j=document.getElementById("wb").value;

            if(j!=null)//想判断是否有输入

            { 

                var vj=parseInt(j);

                clearall();

                if(vj<0||vj>6||isNan(j))//判断j是否越界或者是否为数字

                {

                    alert("输入不合法,请重新输入!");

                    document.getElementById("wb").value=" ";//重新清空输入框

                }

                else{

                    hobby[vj-1].checked=true;

                }

            }

         // 任务3

        

        }


提问者:azure1016 2016-08-26 15:05

个回答

  • 慕粉1469604703
    2016-09-06 13:10:27

     function checkone(){    clearall();

                var j=document.getElementById("wb").value;

                var hobby = document.getElementsByName("hobby");

    if(j!=null)//想判断是否有输入

                { var vj=parseInt(j);

           if(isNaN(vj))//判断j是否越界或者是否为数字

                    {alert("输入不合法,请重新输入!"); document.getElementById("wb").value=" ";//重新清空输入框}

            else if(vj<=0||vj>6){alert("输入不合法,请重新输入!"); document.getElementById("wb").value=" ";//重新清空输入框 }

                    else{hobby[vj-1].checked=true; }

                }

    }

    1:hobby为局部变量,只能在函数体内使用,所以要先声明再赋值。

    2:个人觉得isNaN()的值是false或者true,跟数值不在一个取值域里面,所以else不起作用。(第二点也不是很明白,我个人的理解,不知道对不对)

  • zhujun2310
    2016-08-26 16:38:10

    value不能直接赋值给变量

    var j=document.getElementById("wb");

                if(j.value!=null)//想判断是否有输入