大括号的位置
一,不可以执行的版本,
function checkone(){
var hobby = document.getElementsByName("hobby");
for(var o=1;o<=hobby.length;o++){
hobby[o].checked=false;
}
var u=document.getElementById("wb").value;
hobby[u].checked=true;
}
二 可以执行的版本
function checkone(){
var hobby = document.getElementsByName("hobby");
for(var o=1;o<=hobby.length;o++){
hobby[o].checked=false;
var u=document.getElementById("wb").value;
hobby[u].checked=true;
}
}
我自己写的是一, 清除完再选定。我在哪里出错了,求教
function checkone(){ var hobby = document.getElementsByName("hobby"); for(var o=0;o<hobby.length;o++){ //不应该小于等于,直接小于就可以了 hobby[o].checked=false; } var u=document.getElementById("wb").value - 1; //数组下标从0开始,所有正常执行时,应该是1(后台需要处理成0) hobby[u].checked=true;
这个代码是你的第一个版本(不可以执行的版本)修改过来,你的逻辑没问题;
注释的两个地方,我已经写出来:
注释1:之所以失败,是因为你用了<=,直接导致后边的代码不起作用,也就是执行了循环后就结束了;
注释2:数组下标从0开始,表面上看 1.音乐 ~ 6.跑步,但实际上后台数组对应下边应该是 0.音乐 ~ 5.跑步,获取值那里必须手动减 1
function checkone(){
var hobby = document.getElementsByName("hobby");
var u=document.getElementById("wb").value;
for(var o=1;o<=hobby.length;o++){
hobby[o].checked=false;
hobby[u].checked=true;
}
}
写法不规范,没有弄清楚哪些该循环,哪些不该