2013-02-22 84 views
0

我有一組Yes/No下拉菜單,我想選擇值爲Yes的所有選擇元素。JQuery Selector按值來選擇下拉

<select name="foo1"> 
    <option value="yes">Yes</option> 
    <option value="no">No</option> 
</select> 
<select name="foo2"> 
    <option value="yes">Yes</option> 
    <option value="no">No</option> 
</select> 
<select name="foo3"> 
    <option value="yes">Yes</option> 
    <option value="no">No</option> 
</select> 

我想要一個JQuery選擇器,返回當前處於Yes狀態的選擇節點的子集。我意識到我可以做一個簡單的調用filter(),但我寧願在選擇器中做所有事情。

$('#myform select').filter(function(k,v){return v.value == 'yes';}) 

在此先感謝。

+0

爲什麼?我會使用'filter'方法,更快,更有前途。 – undefined 2013-02-22 21:04:04

回答

2
$('#myform select option[value="yes"]:selected').parent() 

See demo

+0

男人,我可以發誓我試過這個。我嘗試了很多東西,有些完全脫離了牆壁。誰知道我到底在做什麼。謝謝。 – dharga 2013-02-22 21:30:35

0
$('#myform select[value=yes]'); 
1

如果你希望它是有效的,你應該堅持filter,但您可以創建自定義過濾器,你可以在你的選擇直接使用:

$.expr[':'].value = $.expr.createPseudo(function (value) { 
    return function (el) { 
     return el.value == value; 
    }; 
}); 

使用方法如下:

$('select:value(yes)'); 

這裏的小提琴:http://jsfiddle.net/Eb3hp/

+0

這看起來真棒。我認爲我的目的過於矯枉過正,但是我會爲冷靜價值+1。 – dharga 2013-02-22 21:36:51

1

這將是

$('#form select:has(option[value=yes]:selected)') 

它會得到所有選擇具有選項:帶值選擇= YES

FIDDLE