Plus和min Array by show undefined

时间:2016-07-18 15:19:23

标签: jquery

var letterbox = ["A", "B", "C", "D", "E", "F", "G", "H", "I",];

var counter = -1;

  $(".plusbtn").click(function(){
    counter = (counter + 1) % letterbox.length;
    $(".ux--wrapper").empty();
    $(".ux--wrapper").append("<p>"+letterbox[counter]+"</p>");
  });

  $(".minbtn").click(function(){
    counter = (counter - 1) % letterbox.length;
    $(".ux--wrapper").empty();
    $(".ux--wrapper").append("<p>"+letterbox[counter]+"</p>");
  });

我的意图是,当我点击 + 时,它会将数组增加1,同样 - 将数组减少1,但不知何故 - 当你低于&#34; A&#34;它显示未定义,如何让它跳到我的数组的最后一个(这是我&#34;)何时是&#34; A&#34; ??或者有更好的方法,请提出您的意见。

Demo here 尝试启动时点击 -

1 个答案:

答案 0 :(得分:0)

考虑counter何时为0。这一行:

counter = (counter - 1) % letterbox.length;

...将counter设置为-1。环绕技巧并没有像这样向后工作。 letterbox[-1]undefined,因为letterbox没有名称为"-1"的媒体资源。

如果你这样做,环绕技巧会起作用:

counter = (counter + letterbox.length - 1) % letterbox.length;