2014-03-05 25 views
1

我想讓數組後退第二個html按鈕,但由於某些原因,我不能這樣做,這段代碼會使Div改變顏色,甚至像您希望的那樣多次改變顏色。現在我的疑問是如何讓它循環倒退或減少一些如何?讓一個按鈕向前走,一個向後走一個數組?

<head> 

    <title></title> 
    <style>#placeDiv{width:100px;height:100px;}</style> 
    </head> 

    <body> 
    <div id = "placeDiv">ok</div> 
    <button onclick="forward()">Forward</button> 
    <script> 
    var myArray = ["black","yellow","black","red","blue"]; 
    var i = 0; 
    function forward(){ 
    if(myArray.length <= i) i=0; 

     document.getElementById("placeDiv").style.backgroundColor = myArray[i++]; 
     }; 
    </script> 
</body> 
+1

我不是它是什麼,你真的清楚的jsfiddle鏈接詢問/試圖去做。你認爲你可以爲我們做一個jsfiddle嗎? – user3334690

+0

該數組包含「黑色」兩次,是由設計? –

+0

[鏈接](http://jsfiddle.net/jobson111/84Rwy/) – user2887761

回答

2

我已經加入了完整的正確執行你問用的jsfiddle鏈接的東西。

HTML

<div id = "placeDiv">ok</div> 
    <button onclick="forward()">Forward</button> 
    <button onclick="backward()">Backward</button> 

JS

var myArray = ["black","yellow","green","red","blue"]; 
    var i = 0; 
document.getElementById("placeDiv").style.backgroundColor = myArray[i]; 
    forward=function(){ 

     if(i == myArray.length-1) 
     {i=0;} 
     else 
     {i=i+1;} 

     document.getElementById("placeDiv").style.backgroundColor = myArray[i]; 
     }; 
backward=function(){ 

    if(i == 0) 
    {i=myArray.length-1;} 
    else 
    { 
     i=i-1; 
    } 


     document.getElementById("placeDiv").style.backgroundColor = myArray[i]; 


} 

而且在我所演示

http://jsfiddle.net/96azU/1/

+0

如果答案對您有幫助,請接受我的回答並投票。 –

+0

我沒有足夠的代表,但肯定這是我正在等待的答案!非常感謝。 – user2887761

+0

但是你再次接受我的回答,爲什麼? –

1

你可以試試這個:

var myArray = ["black","yellow","black","red","blue"]; 

var i = 0; 

function forward(){ 
    if (myArray.length == i) i = 0; 

    document.getElementById("placeDiv").style.backgroundColor = myArray[i++]; 
}; 

function backward(){ 
    if (i == -1) i = myArray.length - 1; 

    document.getElementById("placeDiv").style.backgroundColor = myArray[i--]; 
}; 
+0

雖然重要的是顏色的最後位置,我感謝您的幫助。 – user2887761

+0

@ user2887761即使顏色的最後位置已在我的回答中更正 –