<script type="text/javascript"> function checkall(){ var hobby=document.getElementsByTagName("input"); for(var i=0;i<=hobby.length;i++){ hobby[i].checked=true; } } //任务一 function clearall(){ var hobby=document.getElementsByName("hobby"); for(var i=0;i<=hobby.length;i++){ hobby[i].checked=false; } } //任务二 function checkone(){ var j=document.getElementById("wb").value; var hobby=document.getElementsByName("hobby"); var num=j.split(""); for(var i=0;i<hobby.length;i++){ hobby[num[i]-1].checked=true; } } //任务三 function clearone(){ var j=document.getElementById("wb").value; var hobby=document.getElementsByName("hobby"); var num=j.split(""); for(var i=0;i<hobby.length;i++){ hobby[num[i]-1].checked=false; } } </script>
function clearone(){ //函数名意思大概是 清除选中的check var j=document.getElementById("wb").value; //取出输入框中的值并且赋值给j,j是字符串 var hobby=document.getElementsByName("hobby"); //取出所有的复选框,存入类数组hobby //这个代码假设用户输入了一个或以上的数字,中间用空格隔开,比如:2 5 6 var num=j.split(""); //因此去掉j之间的空格,把结果存入num,num是数组 for(var i=0;i<hobby.length;i++){ //遍历num数组,hobby中第一是o,最后一个是length-1,i是num的序数,num数组的序数不可能大于hobby数组的长度。 hobby[num[i]-1].checked=false; //num中存的是用户的输入,从1开始,转换为数组元素要-1 }
假设,用户输入的是 2 5 6
num=256
for循环中,第一次:
hobby[num[0]-1] 等价于hobby[2-1]等价于 hobby[1].用户的意思就是第二个复选框,因此输入2,转换成数组hobby中就是hobby[1]。把这个复选框设置为未选中状态
for循环三次,同上。
// 任务3
function checkone(){
var j=document.getElementById("wb").value;
if(j>=1&&j<=6){
var hobby=document.getElementById("hobby"+j);
hobby.checked=true;}
else
document.write("please input again");
}