单击时更改数组列表中的值

时间:2014-10-31 19:38:01

标签: javascript jquery

我想在每次点击时将值更改为下一个数字...一旦它到达结尾,它就从头开始重复......

http://jsfiddle.net/5nwt0u36/

HTML:

<button id="button">Click me</button>
<br />
<br />
<div id="info"></div>

的javascript:

var arr = [10001, 10302, 12303, 11004, 10044];

$(document).on('click', '#button', function() {
    $.each(arr, function(key, val) {
        $('#info').text(arr[key]);
    });
    return false;
});

3 个答案:

答案 0 :(得分:1)

如果您存储索引并在每次点击时递增,则应该

var arr = [10001, 10302, 12303, 11004, 10044];
var i = 0;
$(document).on('click', '#button', function() {
    i++;
    $('#info').text(arr[i%arr.length]);
    return false;
});

答案 1 :(得分:1)

非常简单,获取当前数字的当前索引,检查长度,如果最后重复:

var arr = [10001, 10302, 12303, 11004, 10044];
$(document).on('click', '#button', function() {
    var current = parseInt($("#info").text(), 10),
        currentIndex = arr.indexOf(current);

    var value;
    if (currentIndex == (arr.length - 1)) {
        value = arr[0];
    } else {
        value = arr[++currentIndex];
    }

    $("#info").text(value);
});

答案 2 :(得分:1)

只需将索引放入此实例中的vari,然后在每次点击时增加值。还要确保检查i是否等于数组的长度,如果重置则为。

A JS Fiddle for you

var arr = [10001, 10302, 12303, 11004, 10044],
    i = 0;

$(document).on('click', '#button', function() {   
    if(i === arr.length){
        i = 0;   
    }

    $('#info').text(arr[i]);
    i++;
    return false;
});