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

JS进阶篇9-4任务3,自己做了个小拓展,虽然功能实现但却会报错


JS进阶篇的这一课:http://www.imooc.com/code/3251


任务3,我的代码是:

function checkone() {

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

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

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

hobby[j-1].checked = true;

hobby[i].checked = false;//不符合的但被选中了则取消选中

}

虽然“不符合的但被选中了则取消选中”那行代码能实现我的目的,但其实chrome的console那会报错。为什么呢?该如何修改呢?



提问者:熊猫兔击队 2017-01-09 17:53

个回答

  • zl19870726
    2017-01-11 08:26:09
    已采纳

     最后选择爬山的时候,你会先选中,再取消,所以最后选不中,选中应该放在for循坏的外面,你再尝试一下

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

                        hobby[i].checked = false;//不符合的但被选中了则取消选中

                    }

                    hobby[j - 1].checked = true;


  • 慕斯4472785
    2017-01-10 21:27:59

    在输入1-6之间的数字,并不会报错啊,但发现个问题,输入6的时候选不到爬山,i < hobby.length+1