如果您知道索引、值或文本。如果您没有直接引用的ID。
这、这和这都是有用的答案。
示例标记
<div class="selDiv">
<select class="opts">
<option selected value="DEFAULT">Default</option>
<option value="SEL1">Selection 1</option>
<option value="SEL2">Selection 2</option>
</select>
</div>
通过值获取中间选项元素的选择器是
$('.selDiv option[value="SEL1"]')
对于索引:
$('.selDiv option:eq(1)')
对于已知文本:
$('.selDiv option:contains("Selection 1")')
编辑:如上所述,OP可能是在更改下拉列表中的选定项目之后。在1.6及更高版本中,建议使用prop()方法:
$('.selDiv option:eq(1)').prop('selected', true)
在旧版本中:
$('.selDiv option:eq(1)').attr('selected', 'selected')
编辑2:瑞安发表评论后。“选择10”上的匹配可能不需要。我找不到与全文匹配的选择器,但过滤器可以工作:
$('.selDiv option')
.filter(function(i, e) { return $(e).text() == "Selection 1"})
EDIT3:使用$(e).text()时要小心,因为它可能包含导致比较失败的换行符。当选项隐式关闭(无</option>标记)时,会发生这种情况:
<select ...>
<option value="1">Selection 1
<option value="2">Selection 2
:
</select>
如果您只使用e.text,任何多余的空格(如尾随换行符)都将被删除,从而使比较更加稳健。