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有什么用?
输入框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