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');

Регистрация здесь, он выберет опцию на основе текстового значения.


такой. Просто измените число в eq (0)

$("#mySelect").val($("#mySelect").children().eq(0).val());

Я не знаю контекста, но это сработало для меня, когда мне нужно было получить данные из json и выбрать опцию этого конкретного поля со списком:

$("#mySelect option[id='" + someVariable + "']").attr('selected', 'selected');