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

求助 为什么用switch 没用

 function checkone(){

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

        switch(j)

        {

            case 1:

                hobby1.checkbox=true;

                break;

            case "2":

                 hobby2.checkbox=true;

                break; 

            case "3":

                 hobby3.checkbox=true;

                break;

            case "4":

                 hobby4.checkbox=true;

                break;

            case "5":

                 hobby5.checkbox=true;

                break;

            case "6":

                 hobby6.checkbox=true;

                break;    

        }

         // 任务3


提问者:撡艚鄵 2016-10-12 00:09

个回答

  • 慕粉3951534
    2016-10-12 15:11:46

    function checkone(){
               var j=document.getElementById("wb").value;
            switch(j)
            {
                case 1:
                    hobby1.checkbox=true;
                    break;
                case "2":
                     hobby2.checkbox=true;
                    break;

    截取了你的一小段代码。

    第一, case 1 这个地方,1 最好加上引号,字符串类型。

    第二,直接 hobby1.checkbox=true; 是不行的,需要先获取到相应 id 的对象,就拿 id 为 1 来举例,如下:

    document.getElementById("hobby1").checked = true;

    这里设置选中的属性是 checked,而不是 checkbox。

    另外,其实这里不需要用 switch,直接这样写就可以:

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

    因为 6 个复选框的 id 是 hobby1 到 hobby6,是有规律的,直接把 j 拼到 "hobby" 后面就行。

  • Czjhit
    2016-10-12 11:09:42

    switch()中获取的值可直接配对case中对应的结果更为方便快捷,响应机制会跟快。用for循环加if判断这些可能就麻烦了,方法很多,就是用简单的更好