如果您知道索引、值或文本。如果您没有直接参考的 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')
EDIT2 :在瑞安的评论之后。“选择 10”上的匹配项可能是不需要的。我发现没有选择器与全文匹配,但过滤器有效:
$('.selDiv option') .filter(function(i, e) { return $(e).text() == "Selection 1"})
EDIT3 :谨慎使用,$(e).text()因为它可能包含一个换行符,使比较失败。This happens when the options are implicitly closed (no </option>tag):
$(e).text()
</option>
<select ...> <option value="1">Selection 1 <option value="2">Selection 2 : </select>
如果您只是使用e.text任何额外的空格,例如尾随换行符,则会被删除,从而使比较更加稳健。
e.text