for循环和setInterval()
标签:
																																											JavaScript
																				最近脑子比较迟钝,遇见一个问题,记录下来,如下:
有个数组arr:<code>["1","2","3","4","5"]</code>,然后有个id为<code>box</code>的元素,实现单击屏幕后,按照数组各项顺序,每1秒钟向box中添加数组的一项,jq如何实现。
一开始的写法:
window.onload = function(){
    var arr = ["1","2","3","4","5"],
        arrL = arr.length,
        oBox = $("#box");
    $(document).on("click",function(){
        for(var i = 0; i < arrL; i ++){
            setInterval(function(){
                oBox.append(arrL[i])
            },1000)
        }
    })  
}写完发现什么都没什么用,才发现跟我所想有很大差异,这样写并不是给for循环设定了每次循环的时间间隔,所以执行添加操作的时候,for循环变量已经最大了。
最后解决办法,不用for循环,代码很简单,如下:
window.onload = function(){
    var arr = ["1","2","3","4","5"],
        arrL = arr.length,
        oBox = $("#box");
    $(document).on("click",function(){
        var i = 0;
        var t = setInterval(function(){
            oBox.append(arr[i]);
            i += 1;
            if(i > arrL - 1){
                clearInterval(t);
            }
        },1000)
    })
}问题所在:思维限制,很多时候一想到要循环马上就是for,但是有可能根本就用不到。办法总比问题多,所以遇见问题后不应立马就着手做,首先应该想想哪种办法最合适,最简单,最有效。
有关for循环还有一个比较经典的问题,单击<code>ul</code>中每项<code>li</code>,弹出相应<code>li</code>的索引值,留作以后手记。
点击查看更多内容
					5人点赞
										
				 评论
				共同学习,写下你的评论
评论加载中...
作者其他优质文章
					正在加载中
				
			感谢您的支持,我会继续努力的~
		扫码打赏,你说多少就多少
		赞赏金额会直接到老师账户
		支付方式
		打开微信扫一扫,即可进行扫码打赏哦
	 
                 
             
			 
					 
					