jQuery-установить индекс выбора по элементам id
<select id="mySelect">
<option id="sel01" value="some value">some value</option>
<option id="sel02" value="some other value">some other value</option>
<option id="sel03" value="maybe me">maybe me</option>
<option id="sel04" value="and another one">and another one</option>
</select>
Я хотел бы выбрать опцию с использованием jQuery, но не по значению:
$("#mySelect").val(1);
но по элементам id.
Спасибо за ответ.
7 ответов
можно использовать prop
метод.
var id = 'sel02';
$('#mySelect option').filter(function(){
return this.id === id
}).prop('selected', true);
или:
$('#' + id).prop('selected', true);
или если вы хотите выбрать опцию на основе ее индекса, вы можете использовать eq
способ:
$('#mySelect option').eq(1).prop('selected', true);
var id= "sel01";
$('#selectid option').each(function(){
if($(this).attr('id') == id){
$(this).attr('selected',true);
}
});
вы можете получить значение элемента с помощью ID и использовать значение для jQuery val()
.
var elementId = 'sel01';
$("#mySelect").val($('#' + elementId).val());
Если вы хотите выбрать опцию:
$('#mySelect option#sel02').prop('selected',true);
Если вы хотите получить значение id выбранного параметра:
$('#mySelect option#sel02').val();
попробуйте этот синтаксис
$('select option:selected').attr('id');
Регистрация здесь, он выберет опцию на основе текстового значения.
Я не знаю контекста, но это сработало для меня, когда мне нужно было получить данные из json и выбрать опцию этого конкретного поля со списком:
$("#mySelect option[id='" + someVariable + "']").attr('selected', 'selected');