1. 程式人生 > >JS中for迴圈如何令變數每次增量不是1?

JS中for迴圈如何令變數每次增量不是1?

for迴圈的常見格式是for(var i=0;i<arr.length;i++){……}。對於有些情況下,需要間隔獲取物件,採用加1的迴圈雖然可以通過設定條件來實現,但是直接從for迴圈的變數增量著手也可以一步到位。

for迴圈增量為2的程式碼:

for(var i=0;i<arr.length;i+=2)
    {
       …… 
    }

例項:對於多個Div元素間隔變色。

<!doctype html>
<html>
<head>
<title>運動</title>
<meta charset="utf-8">
<style>
.div1{width:100px;height:100px;float:left;background:#ccc;margin:5px;}
</style>
<script>

window.onload=function()
{
	aDiv=document.getElementsByClassName('div1');	
	for(var i=0;i<aDiv.length;i+=2)
	{
		aDiv[i].style.background='red';	
	}
	
}
</script>
</head>
<body>

<div class="div1"></div>
<div class="div1"></div>
<div class="div1"></div>
<div class="div1"></div>
<div class="div1"></div>
<div class="div1"></div>
<div class="div1"></div>
<div class="div1"></div>
<div class="div1"></div>
<div class="div1"></div>
<div class="div1"></div>
<div class="div1"></div>
<div class="div1"></div>
<div class="div1"></div>
<div class="div1"></div>
</body>
</html>

問題:

for迴圈中的變數i的作用範圍是多少?

for迴圈中的變數似乎無法作用到函式內部,但是可以作用到if……else語句中?

譬如:

for(var i=0;i<arr.length;i++)
{
     arr[i].onclick=function(){……//裡面直接呼叫for迴圈中的i就不行}
     if(//裡面可以直接使用for迴圈中定義的變數i)
     {//裡面可以直接使用for迴圈中定義的變數i}
}