我正在尝试创建一个可以选择下一个选项的按钮。
所以,我有一个select(id = selectionChamp)有几个选项,下一个输入(id = fieldNext),我试着这样做:
$('#fieldNext').click(function() {
$('#selectionChamp option:selected', 'select').removeAttr('selected')
.next('option').attr('selected', 'selected');
alert($('#selectionChamp option:selected').val());
});
但是我无法选择下一个选项..谢谢!
答案 0 :(得分:29)
$('#fieldNext').click(function() {
$('#selectionChamp option:selected').next().attr('selected', 'selected');
alert($('#selectionChamp').val());
});
答案 1 :(得分:15)
$("#fieldNext").click(function() {
$("#selectionChamp > option:selected")
.prop("selected", false)
.next()
.prop("selected", true);
});
答案 2 :(得分:9)
没有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;
}
一些测试标记:
<button id="fieldNext">Select next</button>
<select id="selectionChamp">
<option>0
<option>1
<option>2
</select>
答案 3 :(得分:2)
$(function(){
$('#button').on('click', function(){
var selected_element = $('#selectionChamp option:selected');
selected_element.removeAttr('selected');
selected_element.next().attr('selected', 'selected');
$('#selectionChamp').val(selected_element.next().val());
});
});
答案 4 :(得分:0)
$('#fieldNext').click(function() {
$('#selectionChamp option:selected').removeAttr('selected')
.next('option').attr('selected', 'selected');
alert($('#selectionChamp option:selected').val());
});
答案 5 :(得分:0)
试试这个:
$(document).ready(function(){
$("#fieldNext").on("click",function(){
$optionSelected = $("#selectionChamp > option:selected");
$optionSelected.removeAttr("selected");
$optionSelected.next("option").attr("selected","selected");
});
});
答案 6 :(得分:0)
除了选项元素之外还有选项组元素,其他解决方案不起作用。在这种情况下,这似乎有效:
var options = $("#selectionChamp option");
var i = options.index(options.filter(":selected"));
if (i >= 0 && i < options.length - 1) {
options.eq(i+1).prop("selected", true);
}
(您可能认为i
的表达式也可以写成options.index(":selected")
,但这并不总是有效。我不知道原因,欢迎提供解释。)< / p>
答案 7 :(得分:0)
我希望这样的按钮可以通过选项循环,也可以触发更改事件。以下是可能的解决方案:
$("#fieldNext").click(function() {
if ($('#selectionChamp option:selected').next().length > 0)
$('#selectionChamp option:selected').next().attr('selected', 'selected').trigger('change');
else $('#selectionChamp option').first().attr('selected', 'selected').trigger('change');
});
这是jsFiddle:http://jsfiddle.net/acosonic/2cg9t17j/3/