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

可以帮我解释一下这个函数的意思吗

function checkone(){

            clearall();

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

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

            for(var i=0;i<j.length;i++){

                if(j.charAt(i)>6 || j.charAt(i)<1){

                    alert("越界,请重新输入!");

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

                }

            }

                for(var n=0;n<j.length;n++){    

                        /*hobby[(j.charAt(n))-1].checked=true; */

                }       

        }

中的(j.charAt(n))-1怎么理解,比如说j=5的话,为啥不直接hobby[j.charAt-1]这样表达呢,要在for循环里,在j.charAt(n)而且这个n有什么用?

提问者:alltoyes 2018-09-19 19:42

个回答

  • 贾稀罕
    2018-09-22 20:35:51

    输入框wb的值是String类型的,所以j是String类型的,for(var i=0;i<j.length;i++) 这个for循环是遍历j, 字符串的charAt()方法参数是一个整数,表示了取这个字符串下标(从0开始)为该参数位置的字符,比如 b=abc.charAt(1),所以if(j.charAt(i)>6 || j.charAt(i)<1)这个if是判断当j的第i个位置的字符是不是大于6或者小于1(用户除了数字可能还会输入英文字母,符号什么的,这样子判断就保证用户输什么程序都不会出错),因为爱好的id是1到6