问答详情
源自:9-4 区别getElementByID,getElementsByName,getElementsByTagName

请教不知道哪里错了

 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
        
        }



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

提问者:木筱茵ぅ相濡以沫 2016-04-12 19:03

个回答

  • 打开铃铛
    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;

            }