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

为什么要多一步把“hobby”+j赋值给hobby?

function checkone(){

        // 任务3

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

            var hobby=document.getElementById("hobby"+j);

            hobby.checked=true;

        }

为什么不能这样

function checkone(){

        // 任务3

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

            //这行不要var hobby=document.getElementById("hobby"+j);

            "hobby"+j.checked=true;

        }


提问者:冷月诗魂 2016-03-09 15:36

个回答

  • LeingK
    2016-03-09 17:38:52
    已采纳

    首先 var hobby=document.getElementById("hobby"+j);这一句不是把“hobby”+j赋值给hobby,

     var j=document.getElementById("wb").value;这里是获取id为wb的那个文本框里的值,也就是你输入的值。

    假设你输入的是2,那么j=2;

    从而"hobby"+j的值是hobby2,

    所以var hobby=document.getElementById("hobby2"),所以hobby是id为hobby2的节点

    hobby.checked=true;这里就是选择id为hobby2的复选框。

    然后说说"hobby"+j.checked=true;

    我真的没看到过这种写法,=左边的应该是变量,"hobby"+j.checked这个不是变量。。。。。
    不要把=看成等于号,=是赋值符号



  • xld
    2016-03-24 11:09:58

    原来+是连接符的意思!!真是太感谢了,想了半天

  • 武宣
    2016-03-09 16:09:58

    最后那行可以("hobby"+j),丢了括号意思就变了