请教不知道哪里错了

来源:9-4 区别getElementByID,getElementsByName,getElementsByTagName

木筱茵ぅ相濡以沫

2016-04-12 19:03

 function checkone(){
            var j=document.getElementById("wb").value;
            /*var w=document.getElementById("hobby"+j);
            w.checked=true;
                */
            for(var i=0;i<hobby.length;i++)
            {
                if(i==j)
                {
                    hobby[j].checked=true;
                }
            }
         // 任务3
        
        }



这是哪里错了 我找不到错误

写回答 关注

1回答

  • 打开铃铛
    2016-04-12 20:12:39

    你没有定义hobby是什么啊,每个函数都要重新定义一下hoby,所以加上这句var hobby = document.getElementsByName("hobby");,但是这样序号是错开的,你填3,它会把第四个选上,因为记数是从0开始的,所以改成这样:

    function checkone(){

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

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

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

                {

                    if(i==j)

                    {

                        hobby[j-1].checked=true;

                    }

                }

    然后其实循环也是多余的,直接这样就行:

    function checkone(){

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

             

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

                

                hobby[j-1].checked = true;

            }


JavaScript进阶篇

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

468061 学习 · 21891 问题

查看课程

相似问题