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

document.getElementById("wb").value为什么是正确的?

function checkone(){
            var j=document.getElementById("wb").value;
                if(j<1 || j>6){
                    alert("输入错误,请重新输入!!!");
                }
                else{
                    //clearall();
                    var hobby=document.getElementsByName("hobby");
                    hobby[j-1].checked=true;
                }
        }

document.getElementById("wb").value返回的是字符,那为什么还可以和1,6比较大小,而且用作数组的索引也没问题,不需要parseInt(j)的嘛?

提问者:宝慕林6291606 2018-12-18 16:27

个回答

  • 阳火锅
    2018-12-18 16:53:48
    已采纳

    你如果输入的是数字就是数字。。不是什么字符串。。你所说的为什么不用parseInt()这个函数。。场景是不需要用。。为什么呢?因为你这就是一个简单的数字比较,并没有做连接。。你如果把j-1改成j+1。这个时候问题就来了。系统就无法判断你这个j+1是做字符串连接还是做运算了。。懂吗?  不信你可以测试一下。。望采纳

  • 宝慕林6291606
    2018-12-18 17:12:25

    懂了,取到的值是字符,但是和数字有操作,就会转换为数字了,所以j-1是没问题的,j+1有问题,因为系统可能认为是字符连接,而不是数字操作。

    但是,如果下标为j,为什么也是正确的?