使用jQuery选择下一个选项

Clé*_*aud 26 javascript jquery next option

我正在尝试创建一个可以选择下一个选项的按钮.

所以,我有一个select(id = selectionChamp)有几个选项,一个输入接下来(id = fieldNext),我尝试这样做:

$('#fieldNext').click(function() {
    $('#selectionChamp option:selected', 'select').removeAttr('selected')
          .next('option').attr('selected', 'selected');

    alert($('#selectionChamp option:selected').val());      
});
Run Code Online (Sandbox Code Playgroud)

但我无法选择下一个选项..谢谢!

bug*_*s94 31

$('#fieldNext').click(function() {
    $('#selectionChamp option:selected').next().attr('selected', 'selected');

    alert($('#selectionChamp').val());      
});
Run Code Online (Sandbox Code Playgroud)

  • 还需要取消选择当前选项,例如`$('#selectionChamp option:selected').attr('selected',false);` (4认同)

Vis*_*ioN 16

$("#fieldNext").click(function() {
    $("#selectionChamp > option:selected")
        .prop("selected", false)
        .next()
        .prop("selected", true);
});?
Run Code Online (Sandbox Code Playgroud)

演示: http ://jsfiddle.net/w9kcd/1/

  • 抱歉,您说得对,不需要在原始请求中循环,但是这里是改进的答案,它以 jQuery 方式循环并触发更改事件,毕竟这是为人们提供最佳答案 http://jsfiddle.net/acosonic/2cg9t17j /3/ (3认同)

Rob*_*obG 10

没有jQuery也很简单.一旦达到最后一个,这个将循环到第一个选项:

function nextOpt() {
  var sel = document.getElementById('selectionChamp');
  var i = sel.selectedIndex;
  sel.options[++i%sel.options.length].selected = true;
}

window.onload = function() {
  document.getElementById('fieldNext').onclick = nextOpt;
}
Run Code Online (Sandbox Code Playgroud)

一些测试标记:

<button id="fieldNext">Select next</button>
<select id="selectionChamp">
 <option>0
 <option>1
 <option>2
</select>
Run Code Online (Sandbox Code Playgroud)