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

来源:9-4 区别getElementByID,getElementsByName,getElementsByTagName

冷月诗魂

2016-03-09 15:36

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;

        }


写回答 关注

3回答

  • 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这个不是变量。。。。。
    不要把=看成等于号,=是赋值符号



    冷月诗魂

    非常感谢!

    2016-03-14 08:28:48

    共 1 条回复 >

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

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

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

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

    武宣 回复冷月诗魂

    我也是初学,只能跟你讨论下,那个+是连接符不是赋值的意思 例如"hobby"+4相当于获取id=hobby4的值

    2016-03-09 16:34:07

    共 2 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468063 学习 · 21891 问题

查看课程

相似问题