通过其“选项”元素之一查找“选择”元素?

问题描述:

很容易找到selectid并获取/设置其选择option。然而,假设我知道只有option的值,我首先需要找到select它具有该选项(假定只有一个),并且,然后设置option被选择。我会怎么做?通过其“选项”元素之一查找“选择”元素?

编辑:我刚刚注意到你的意图是通过它的值设置选定的选项。

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

$('#mySelect').val('somevalue'); 

如果您有没有其他的方法来定位选择,那么你可以用我以前的解决方案,然后再调用.val()


$('option[value="somevalue"]').closest('select'); 

它使用attribute-equals-selector(docs)获得其中value属性等于你要寻找的值的选项。

然后它使用closest()(docs)方法抓住其最近的<select>祖先。

这种方法的优点是'option[value="somevalue"]'是一个有效的querySelectorAll()(docs)选择器,所以你会在支持它的浏览器中获得性能提升。

如果存在多个<select>且选项具有该值,则可以将原始选择器添加到目标选择中。

$('#mySelect option[value="somevalue"]') 
+0

什么是寻找最近的选择点? – Victor 2011-01-27 20:55:58

+0

非常好,谢谢。另外感谢您在测试代码时进一步阐述! – David 2011-01-27 20:57:27

使用这样的:

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

这样你不必费心寻找选择,但是这只适用,如果是有真正该选项的只是一个实例,或者如果你想所有的人改变。