【问题标题】:Make an button to go forward and one to go backwards of an array?制作一个前进按钮和一个后退数组?
【发布时间】:2014-04-07 21:10:58
【问题描述】:

我正在尝试使用第二个 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>

【问题讨论】:

  • 我不太清楚您要/试图做什么。你认为你可以为我们制作一个 jsfiddle 吗?
  • 数组包含两次“黑色”,这是设计使然吗?
  • 当我提到相同的颜色时,我的意思是如果你重复相同的颜色,你会尽可能多地重复它,即使它是连续的,这就是我的意思,那就是重复颜色。

标签: javascript css arrays html button


【解决方案1】:

我已经添加了您通过 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];


}

还有我有演示的 JSFiddle 链接

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

【讨论】:

  • 如果回答对你有帮助,请接受我的回答并投票。
  • 我没有足够的代表,但肯定这就是我在等待的答案!非常感谢。
  • 我是堆栈新手,但我明白你现在在说什么。
【解决方案2】:

你可以试试这个:

 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--];
 };

【讨论】:

  • 虽然重要的是颜色的最后位置,但感谢您的帮助。
  • @user2887761 甚至颜色的最后一个位置在我的回答中也得到了纠正
猜你喜欢
  • 1970-01-01
  • 2015-07-19
  • 2011-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多