浏览javascript数组并获取下一个数组索引值

时间:2014-06-25 09:18:13

标签: javascript jquery

我有一个数组,它包含select中的选项值。

var arrValues = new Array();
$("#myId option").each(function()
{
    var sel = $("#myId").val();
    arrValues.push(sel);
} 

现在我想从#myId select选项中找到当前选定的值并获取下一个数组索引值。

forexample 如果数组包含像

这样的值
array = "AB", "CD", "EF"

如果我当前选择的值是AB,我想获取CD值并存储到var nextValue变量中。

3 个答案:

答案 0 :(得分:1)

这就是你要做的:

D E M O

var curval, nextval, _index, arrValues = new Array();

$(function() { bindDropdown();});
function bindDropdown() {
   $("#myselect option").each(function()
    {
        arrValues.push($(this).val());
    });
    $("#myselect").on('change', function() {
        curval = $( "#myselect" ).val();
        _index = $.inArray(curval, arrValues);
        nextval = arrValues[(_index==arrValues.length-1) ? 0 : _index+1];
    }); 
}

nextval 将是您的下一个值..

注意:如果您选择最后一个选项,那么您的下一个选项就成为第一个选项..我不知道这是否是您想要的行为,所以请告诉我..

答案 1 :(得分:0)

以下函数返回下一个值,如果当前值是最后一个值,则返回空字符串:

function getNextValue(array, currentValue) {
    var nextValue = "";
    for(var i = 0; i < array.length - 1; i++) {
        if(array[i] == currentValue) {
            nextValue = array[i + 1];
            break;
        }
    }
    return nextValue;
}

答案 2 :(得分:0)

您可以使用Array.prototype.indexOf在数组中查找索引,然后将其递增以获取下一个索引。如果选择了最后一个选项,请小心,因为没有下一个值。

var nextValue;
var index = arrValues.indexOf($('#myId').val());
if(index < arrValues.length-1){
    nextValue = arrValues[index+1];
} else {
    // the selected value is the last in the array so can't get next
}