我有一个数组,它包含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变量中。
答案 0 :(得分:1)
这就是你要做的:
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
}