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

如果您知道索引、值或文本。另外,如果您没有直接引用的ID

这个,这个和这个都是有用的答案

示例标记

<div class=“selDiv”>
<选择class=“opts”>
<选项选择值=“默认值”>违约&lt/选项>
<选项值=“SEL1”>选择1&lt/选项>
<选项值=“SEL2”>选择2&lt/选项>
&lt/选择>
&lt/部门>

通过值获取中间选项元素的选择器为

$('.selDiv选项[value=“SEL1”]”)

对于索引:

$('.selDiv选项:等式(1)'))

对于已知文本:

$('.selDiv选项:包含(“选择1”))

编辑:如上所述,OP可能是在更改下拉列表中的选定项之后进行的。在1.6版及更高版本中,建议使用prop()方法:

$('.selDiv选项:等式(1)').prop('selected',true)

在旧版本中:

$('.selDiv选项:等式(1)').attr('selected','selected'))

EDIT2:在Ryan的评论之后。“选择10”上的匹配可能不需要。我找不到与全文匹配的选择器,但过滤器可以工作:

$('.selDiv选项')
.filter(函数(i,e){return$(e).text()==“Selection 1”})

EDIT3:请小心使用$(e).text(),因为它可能包含使比较失败的换行符。当选项隐式关闭时(无</option>标记),会发生这种情况:

<选择…>
<选项值=“1”>选择1
<选项值=“2”>选择2
:
&lt/选择>

如果只使用e.text,任何额外的空格(如尾随的换行符)都将被删除,从而使比较更加可靠

发表评论