2013-01-14 33 views
7
<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的一种选择,但不是值设置选择指数:jQuery的 - 由元素ID

$("#mySelect").val(1); 

而是通过元素的ID。

感谢您的回答。

回答

9

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

太感谢你了。 –

+0

@MarcinBobowski欢迎您。 – undefined

1

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

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

爱你的方式,但“未定义”是第一次使用他的方法。谢谢。 –

+0

@MarcinBobowski这取决于你选择哪种解决方案,你更喜欢:) –

+0

最好的事情是能够学习所有的方式和理解他们:) –

1

如果您要选择的选项:如果你想获得价值所选的选项的ID

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

$('#mySelect option#sel02').val(); 
3
var id= "sel01"; 

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

筛选。只需更改的数量在EQ(0)

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

试试这个语法,

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

检查here,它会选择基于文本值的选项。

0

我不知道的背景之下,这一工作对我来说,当我需要从JSON获取数据并做出具体的组合框的选择的选项:

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

请完成代码大括号不匹配 – Ram

+0

哎呀,抱歉:( – AndreSites