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

第三个问题这样可以吗?符合开发规范吗?

第三个问题这样可以吗?符合开发规范吗?

        function checkone(){
            var j=document.getElementById("wb").value;
            var x=document.getElementsByName("hobby");
            for(var i=1;i<x.length;i++){
            if(j.indexOf(i)>-1){x[i-1].checked=true;}}


提问者:larger 2016-01-16 19:08

个回答

  • glenhappy
    2016-02-16 11:57:16

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

             // 任务3

                var idStr="hobby"+j;

                document.getElementById(idStr).checked=true;

    非常简单啊,没有那么复杂,拿去吧,这是我写的

  • GeekYF
    2016-01-18 20:11:32

    上面returnDocument(); 是进行了封装了的,代码如下:

     function returnDocument(theId){
              return document.getElementById(theId);
            }


  • GeekYF
    2016-01-18 20:09:11

    不可以的,这样无法实现功能。

    indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。这里使用不符合。

    参考代码:

    function checkone(){
                var getValue= document.getElementById("wb").value;
            
             // 任务3
                switch(getValue){
                  case '1': returnDocument("hobby1").checked = true;
                          break;
                  case '2': returnDocument("hobby2").checked = true;
                          break;
                  case '3': returnDocument("hobby3").checked = true;
                          break;
                  case '4': returnDocument("hobby4").checked = true;
                          break;
                  case '5': returnDocument("hobby5").checked = true;
                          break;
                  case '6': returnDocument("hobby6").checked = true;
                          break;
                  default:
                    alert("输入超出范围!");
                    break;               
                }
            }


  • zhu_zhu
    2016-01-18 16:25:06

    不符合,变量名称必须有一定的含义,增加代码的可阅读性