jQuery - 按元素id设置select index

时间:2013-01-14 11:55:14

标签: jquery select jquery-selectors

<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 个答案:

答案 0 :(得分:12)

您可以使用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);

答案 1 :(得分:3)

   var id= "sel01";

    $('#selectid option').each(function(){
        if($(this).attr('id') == id){
           $(this).attr('selected',true);
         }
    });

答案 2 :(得分:1)

您可以使用ID检索元素值,并使用jQuery val()的值。

var elementId = 'sel01';
$("#mySelect").val($('#' + elementId).val());

答案 3 :(得分:1)

如果要选择选项:

$('#mySelect option#sel02').prop('selected',true);

如果您想获得所选选项id的值:

$('#mySelect option#sel02').val();

答案 4 :(得分:1)

试试这个语法,

$('select option:selected').attr('id');

选中here,它会根据文字值选择该选项。

答案 5 :(得分:0)

喜欢这个。只需更改eq(0)

中的数字
$("#mySelect").val($("#mySelect").children().eq(0).val());

答案 6 :(得分:0)

我不知道上下文,但是当我需要从json获取数据并选择该特定组合框时,这对我有用:

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