jQuery - 在下拉框中选择选项

16

可能重复:
jQuery / 程序化选择选择框中的选项

我在想,是否可以直接从jQuery中选择一个下拉框/组合框中的选项。例如,我想要在一个值从1到10的选择框中选择值为5的选项。

我能想到的唯一解决方案是删除所有选项并重新创建它们,并带上正确的选定值,但这有点低效。


我搜索了一下,但没有找到任何相关的内容。谢谢,第一个建议解决了我的问题。 - Eduard Luca
1
@Eduard:如果您同意这是@Felix列出的问题之一的重复项,可以删除此问题。(使用下面的“删除”链接。) - T.J. Crowder
@T.J. Crowder:无法删除,因为它有答案,我已经标记要求移除。@ Tomalak:你离题了,干得好,你比我更擅长搜索。 - Eduard Luca
我的意思是,我确实是一个搜索忍者,但在这种情况下并不需要使用搜索忍者技能。你只需要从标题中删除两个单词,就可以得到这个标题。 - Lightness Races in Orbit
显示剩余3条评论
5个回答

59

将选择框视为任何其他输入元素处理即可:

$("#MySelectBox").val("5");

17
你可以通过在<option>标签中添加selected属性来实现此操作。

$(document).ready(function () {
    $('#btn2').click(function(){
        $('#sel1 option[value=2]').attr('selected','selected');
    });
    $('#btn3').click(function(){
        $('#sel1 option[value=3]').attr('selected','selected');
    });
    $('#btn5').click(function(){
        $('#sel1 option[value=5]').attr('selected','selected');
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.3/jquery.min.js"></script>
<select id="sel1">
    <option value='1'>Option 1</option>
    <option value='2'>Option 2</option>
    <option value='3'>Option 3</option>
    <option value='4'>Option 4</option>
    <option value='5'>Option 5</option>
    <option value='6'>Option 6</option>
    <option value='7'>Option 7</option>
    <option value='8'>Option 8</option>
    <option value='9'>Option 9</option>    
</select>
<input id="btn2" type=button value='Select 2' />
<input id="btn3" type=button value='Select 3' />
<input id="btn5" type=button value='Select 5' />


选定属性的其他值是什么?我的意思是有“选定”,是否有“未选定”、“假”或类似的值? - Zilong Li

8
当然可以。
只需使用以下代码选择选项5:
$("#ComboBox").val(5);

example


2

你所需要做的就是设置属性selectedtrueselected

var arrayOfOptions = $('#mySelect option') //will return an array of options in the order they are found

只需对它们进行迭代,类似于以下方式:

for(var i=0; i<arrayOfOptions.length; i++) {
   var opt = arrayOfOptions[i];
   //feel free to check the index of i here if you want to set
   //a particular index to selected or a range.
   //similarly the range can be passed in as a function parameter.
   $(opt).attr('selected','selected');

}

0

如果我理解你的意思正确,你想选择值为5的选项并将其标记为已选中。如果是这样,代码如下:

$("#selectBox[value='5']").attr('selected', 'selected');

这个也应该可以工作:

$("#selectBox").attr('value', 5).attr('selected', 'selected');

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接