小编典典

如何在 jQuery 的 SELECT 元素中选择特定选项?

all

如果您知道索引、值或文本。如果您没有直接参考的 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>

阅读 105

收藏
2022-03-02

共1个答案

小编典典

按值获取中间选项元素的选择器是

$('.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):

<select ...>
<option value="1">Selection 1
<option value="2">Selection 2
   :
</select>

如果您只是使用e.text任何额外的空格,例如尾随换行符,则会被删除,从而使比较更加稳健。

2022-03-02