通过其“选项”元素之一查找“选择”元素?
问题描述:
很容易找到select
的id
并获取/设置其选择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"]')
答
使用这样的:
$('option[value="somevalue"]').attr('selected', true);
这样你不必费心寻找选择,但是这只适用,如果是有真正该选项的只是一个实例,或者如果你想所有的人改变。
什么是寻找最近的选择点? – Victor 2011-01-27 20:55:58
非常好,谢谢。另外感谢您在测试代码时进一步阐述! – David 2011-01-27 20:57:27