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

关于任务3的问题?

好像这样写也可以

 function checkone(){

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

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

            hobby[j-1].checked = true;

        }

但是为啥很多人这样写呢

function checkone(){

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

            if(parseInt(j)>6||parseInt(j)<1)

            {

                alert("请输入1-6之间的数字");

            }

        

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

            hobby[parseInt(j)-1].checked=true;

        }


提问者:猩大大 2016-07-18 16:02

个回答

  • 爱生活爱阳光
    2016-07-18 19:38:22

    中间的判断是为了提示用户正确输入的,把中间的判断去掉的话,下面的答案只是多了一步parseInt()解析字符串而已。个人认为这一步是不必要的,因为不设定基数的话有可能会解析出错。

    附上我的答案:

            function checkone(){

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

                document.getElementById("hobby"+j).checked = true;

            }