如何检查是否select了一个选项?

$('#mySelectBox option').each(function() { if ($(this).isChecked()) alert('this option is selected'); else alert('this is not'); }); 

显然, isChecked不起作用。 所以我的问题是什么是正确的方法来做到这一点? 谢谢。

UPDATE

select选项的更直接的jQuery方法是:

 var selected_option = $('#mySelectBox option:selected'); 

回答问题.is(':selected')是你正在寻找的东西:

 $('#mySelectBox option').each(function() { if($(this).is(':selected')) ... 

非jQuery(可以说是最佳实践)的方式是:

 $('#mySelectBox option').each(function() { if(this.selected) ... 

虽然,如果你只是在寻找选定的价值尝试:

 $('#mySelectBox').val() 

如果您正在查找所选值的文本,请执行以下操作:

 $('#mySelectBox option').filter(':selected').text(); 

查看: http : //api.jquery.com/selected-selector/

下次查找重复的SO问题:

获取当前选定的选项或设置选定的选项或如何获得$(这个)在jQuery中select的选项? 或选项[selected = true]不起作用

你可以通过这种方式得到select的选项:

 $('#mySelectBox option:selected')... 

现场演示

但是,如果你想迭代所有的选项,用this.selected而不是this.isChecked它不存在:

 $('#mySelectBox option').each(function() { if (this.selected) alert('this option is selected'); else alert('this is not'); }); 

现场演示

更新:

你有很多答案build议你使用这个:

$(this).is(':selected')好吧,它可以做得更快,更容易与this.selected所以你为什么要使用它,而不是本地DOM元素的方法?!

阅读了解 jQuery 标记信息中的DOM属性和函数

如果你不熟悉或不熟悉is() ,你可以检查prop("selected")

如这里所见 :

 $('#mySelectBox option').each(function() { if ($(this).prop("selected") == true) { // do something } else { // do something } });​ 

编辑

正如@gdoron在注释中指出的那样,访问选项的选定属性的更快和最合适的方式是通过DOMselect器。 这里是显示这个动作的小提琴更新 。

 if (this.selected == true) { 

似乎也工作! 谢谢gdoron。

使用

  $("#mySelectBox option:selected"); 

来testing它是否有一个特定的选项myoption

  if($("#mySelectBox option:selected").text() == myoption){ //... } 

在我的情况下,我不知道为什么select总是如此。 所以我能想到的唯一方法是:

 var optionSelected = false; $( '#select_element option' ).each( function( i, el ) { var optionHTMLStr = el.outerHTML; if ( optionHTMLStr.indexOf( 'selected' ) > 0 ) { optionSelected = true; return false; } }); 

如果您只想检查是否select了某个选项,则不需要遍历所有选项。 做就是了

 if($('#mySelectBox').val()){ // do something } else { // do something else } 

注意:如果你有一个值为0的选项,你可以select,你需要将if条件改为$('#mySelectBox').val() != null