2011-03-01 81 views
14

如何选择所有选择框使用jQuery选择器,其中值选择为“A1”?jquery选择器以获取所选的特定值的下拉菜单

样品选择框:

<select name="accesslevel"> 
<option value="A1">A1 Access</option> 
<option value="A2">A2 Access</option> 
</select> 

我不得不使用选择做以下的事情:

.parent().nextAll('td[id^="A1Access"]').show(); 
.parent().nextAll('td[id^="A2Access"]').hide(); 

谁能帮助?

回答

17

尝试:

$('select option[value="A1"]:selected') 
+0

这将返回选项本身,而不是选择框。 – Sandwich 2011-03-01 06:17:00

+0

@DSKVR很好的一点,虽然很简单,但是'.parent('select')'从这里开始。或者只是'.parent()'。 – 2011-03-01 06:33:57

+0

我只是给选择,现在用它,他可以做任何他想通过选择 – Prakash 2011-03-01 06:41:01

2

这里有一些像你原来的规范,但只是修改了一下与我的选择器一起工作。

$('.container').find('option[value=A1]').filter(':selected').parent('select').show(); 

这里,它是简体:

$('option[value=A1]:selected').parent('select'); 
0

对于简单的选择选项,在所有的HTML身体

alert($('option[value=A1]').html()); 

对于select

alert($('select[name=accesslevel]').find('option[value=A1]').html()); 

但警报将只工作一个元素。

,您可选择具有

$('option[value=A1]').parent().remove(); 

它会选择父,将其取下。

3
$('select').filter(
function(){ 
    if($(this).val()=="A1") 
     return true; 
    else 
     return false; 
} 
) 

您可以在此像

$('select').filter(
function(){ 
    if($(this).val()=="A1") 
     return true; 
    else 
     return false; 
} 
).parent().nextAll('td[id^="A1Access"]').show(); 
36

后添加功能正如前面提到的,普拉卡什的解决方案是最接近的,但它选择该选项的值,而不是选择框本身。这可以用:has选择器修复。

$('select:has(option[value="A1"]:selected)') 
+0

我觉得这是比普拉卡什的回答 – 2013-07-10 06:36:00

+0

这更好应该是被接受的答案! – daveoncode 2014-03-05 09:42:43

+0

这个选择器在IE Edge中有不可思议的糟糕的性能(也可能是其他的)。 改为使用它:$('option:selected')。filter('[value =“A1”]')。parent(); – bang 2017-01-19 08:45:46

0

做一个ID这样的..

<select name="accesslevel" id="myselector"> 
<option value="A1">A1 Access</option> 
<option value="A2">A2 Access</option> 
</select> 

现在与ID选择它。

$("select#myselector option:selected").each(function() 
{ 
    alert($(this).text() + " "); 
}); 
相关问题