为了账号安全,请及时绑定邮箱和手机立即绑定

求教,一个大括号引发的问题

大括号的位置

一,不可以执行的版本,

     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;
             }
       
            }



我自己写的是一,  清除完再选定。我在哪里出错了,求教

正在回答

2 回答

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

0 回复 有任何疑惑可以回复我~
#1

慕圣8408166 提问者

非常感谢!
2018-07-17 回复 有任何疑惑可以回复我~

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;
             }
        
      }

写法不规范,没有弄清楚哪些该循环,哪些不该

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468044    人
  • 解答问题       21891    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

求教,一个大括号引发的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信