Jquery 查找';选择';元素的';选项';元素?

Jquery 查找';选择';元素的';选项';元素?,jquery,Jquery,通过其id查找选择,并获取/设置其所选选项非常容易。但是,假设我只知道一个选项的值,我首先需要找到具有该选项的select(假设只有一个),然后设置要选择的选项。我该怎么做呢?编辑:我刚刚注意到您的意图是按其值设置所选选项 要做到这一点,非常简单。只要做: $('#mySelect').val('somevalue'); 如果您没有其他方法来针对该选择,那么您可以使用我以前的解决方案,然后调用.val() 这使用获取选项,其中值属性等于您要查找的值 然后,它使用该方法获取最近的祖先 这种方法

通过其
id
查找
选择
,并获取/设置其所选
选项非常容易。但是,假设我只知道一个
选项的值,我首先需要找到具有该选项的
select
(假设只有一个),然后设置要选择的
选项。我该怎么做呢?

编辑:我刚刚注意到您的意图是按其值设置所选选项

要做到这一点,非常简单。只要做:

$('#mySelect').val('somevalue');
如果您没有其他方法来针对该选择,那么您可以使用我以前的解决方案,然后调用
.val()


这使用获取选项,其中
属性等于您要查找的值

然后,它使用该方法获取最近的
祖先

这种方法的优点是,
'option[value=“somevalue”]
是一个有效的选择器,因此您将在支持它的浏览器中获得性能提升

如果有多个
具有该值的选项,则可以添加到原始选择器中,以确定正确的选择

$('#mySelect option[value="somevalue"]')
使用以下命令:

$('option[value="somevalue"]').attr('selected', true);

通过这种方式,您不必费心查找“选择”,但只有当确实只有一个此选项的实例,或者您希望所有实例都更改时,此选项才有效。

非常好,谢谢。另外还要感谢您在我测试代码时添加了进一步的细化@维克多:因为那是OP想要的元素。选择器定位
,然后
最近的()
抓取最终被锁定的
。@David:我刚刚注意到你的一句话的结尾。有更好的办法。只需使用
.val()
设置值。我会更新的。或者,如果您获取
的唯一目的是设置值,那么您应该改为使用。@patrick dw:这实际上只是根据已知的
选项
值查找
选择
。在这之后,设置select的值是很简单的,正如您所知。不过,我还需要用
select
做其他事情。所以有对象引用是关键。我想我可能遗漏了什么。啊,我明白你现在在做什么了。不过,我还需要参考
选择
,以了解其他内容。(隐藏/显示
动态选择
元素。)但这是一次有益的尝试,可以跳出设置值的框框进行思考+1+1我假设OP需要选择,而不仅仅是设置所选选项。如果不是,那么这个答案将更有意义。
$('option[value="somevalue"]').attr('selected', true);