Ответ 1
$('option:selected', 'select').removeAttr('selected').next('option').attr('selected', 'selected');
Проверьте рабочий код здесь http://jsbin.com/ipewe/edit
Как я могу, используя jQuery, установить "следующий" элемент уже выбранного элемента как "selected".
Например, если у меня есть:
<select>
<option value="1" >Number 1</option>
<option value="2" selected="selected">Number 2</option>
<option value="3" >Number 3</option>
<option value="4" >Number 4</option>
</select>
Мы видим, что выбрано "Number 2", и с помощью jQuery я хотел бы установить "Number 3" как выбранный и удалить выбранный "атрибут" из "Номер 2". Я предполагаю, что мне нужно использовать следующий селектор, но я не совсем уверен, как его реализовать.
$('option:selected', 'select').removeAttr('selected').next('option').attr('selected', 'selected');
Проверьте рабочий код здесь http://jsbin.com/ipewe/edit
Update:
Как и в случае с jQuery 1.6+, вы должны использовать prop()
вместо attr()
.
Разница между атрибутами и свойствами может быть важна в конкретных ситуациях. Перед jQuery 1.6 метод .attr() иногда учитывал значения свойств при извлечении некоторых атрибутов, что может привести к непоследовательному поведению. Начиная с jQuery 1.6,.prop() метод предоставляет способ явного извлечения значений свойств, в то время как .attr() извлекает атрибуты.
var theValue = "whatever";
$("#selectID").val( theValue ).prop('selected',true);
Оригинальный ответ:
Если вы хотите выбрать значение параметра, REGARDLESS своей позиции (в этом примере предполагается, что у вас есть идентификатор для вашего выбора):
var theValue = "whatever";
$("#selectID").val( theValue ).attr('selected',true);
Вам не нужно "отменить выбор". Это происходит автоматически при выборе другого.
Начиная с версии 1.6.1, рекомендуется использовать метод prop для логических атрибутов/свойств, таких как выбранный, только для чтения, включен,...
var theValue = "whatever";
$("#selectID").val( theValue ).prop('selected',true);
Для получения дополнительной информации см. http://blog.jquery.com/2011/05/12/jquery-1-6-1-released/
вы можете использовать
$('option:selected').next('option')
или
$('option:selected + option')
И установите значение:
var nextVal = $('option:selected + option').val();
$('select').val(nextVal);
И если вы хотите указать select ID:
$("#nextPageLink").click(function(){
$('#myselect option:selected').next('option').attr('selected', 'selected');
$("#myselect").change();
});
Если вы нажмете на элемент с идентификатором "nextPageLink", будет выбран следующий параметр, и будет вызываться событие onChange(). Это может выглядеть так:
$("#myselect").change(function(){
$('#myDivId').load(window.location.pathname,{myvalue:$("select#myselect").val()});
});
Событие OnChange() использует Ajax для загрузки чего-либо в указанный div.
window.location.pathname = фактический адрес
Событие OnChange() определено, поскольку оно позволяет вам изменять значение не только с помощью кнопки netx/prev, но и напрямую с помощью стандартного выбора. Если значение изменено, страница делает что-то автоматически.
Это то, что я только что использовал, мне нравится, насколько он чист: -)
$('select').val(function(){
var nextOption = $(this).children(':selected').next();
return $(nextOption).val();
}).change();
$('your_select option:selected').next('option').prop('selected', true)
Найдите строку, затем
var row = $('#yourTable');
значение, которое вы хотите выбрать
var theValue = "5";
row.find("select:eq(2)").find("option[value="+theValue+']').attr('selected','selected');
$('#next').click( function(){
$('#colored_background option:selected').next('option').attr('selected', 'selected');
changeBackgroundColor();
});
Работает на Какой мой любимый цвет?. Нажмите стрелки.
$("select").prop("selectedIndex",$("select").prop("selectedIndex")+1)
$('#my_sel').val($('#my_sel option:selected').next().val());
$('#my_sel').val($('#my_sel option:selected').prev().val());