踩坑:javascript中for循环,变量不是Number类型导致for循环不执行

情景:

从html获取4对{起点元素(id记为start)和终点元素(id记为end)},

遍历起点到终点的所有元素,并打印出元素id(假设id连续)


解决方案:

Number(待转换数)进行强制转换

js代码:


扫描二维码关注公众号,回复: 1532519 查看本文章

控制台:


如上图控制台:

第一对儿元素{43,46},进入for循环正常打印43,44,45,56;

第二、三对儿元素也分别进入for循环正常打印


问题出现:

但是,

执行到start=8,end=10的时候,就不进入for循环里面打印8,9,10了


解决方案:

Number(待转换数)进行强制转换

看到第一张图的“8”,“9”;想到可能是类型的问题,就用Number包住document.getElementById("startParent").firstChild.id强制转换

问题解决。


教训:进行数字属性操作的时候,确保它是个数字

———————————————————————分割线———————————————————————————

自己写了个小demo验证,却发现程序正常运行

    for(var i = 0;i <= 1;i++)
    {
        var str1 = "7";// 字符串类型
        var str2 = "8";// 字符串类型
        for(var j = str1;j <= str2;j++) 
        {
        	console.info(j);
        }
    }

控制台:


有点怪异,欢迎评论交流


猜你喜欢

转载自blog.csdn.net/yunzhongxiaoma/article/details/80623541
今日推荐