如何检查是否被选中的选项?如何检查是否被选中的选项?(How to check if an opti

2019-05-13 13:59发布

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

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

Answer 1:

UPDATE

更直接的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/

下一次查找重复做题:

获取当前选定的选项或设置所选选项或如何获得$(本)中的jQuery选择的选项? 或选项[选定=真]不起作用



Answer 2:

你可以选择的选项是这样的:

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

现场演示

但是,如果你想要遍历所有的选项,并做this.selected代替this.isChecked不存在:

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

现场演示

更新:

你有足够的答案建议你使用这个的:

$(this).is(':selected')好了,这是可以做到快了很多,更容易与this.selected为什么你应该使用它,而不是本机的DOM元素的方法?

阅读知道你的DOM属性和功能 jQuery 标签信息



Answer 3:

如果你不熟悉或舒服is()你可以只检查的数值prop("selected")

正如在这里看到 :

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

编辑

作为@gdoron在评论中指出,更快,最适合的方式访问选项的选择的特性是通过DOM选择。 这里是小提琴更新显示这个动作。

if (this.selected == true) {

看起来很好的工作! 谢谢gdoron。



Answer 4:

使用

 $("#mySelectBox option:selected");

测试是否其特定选项myoption

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


Answer 5:

认为这是你的选择列表:

<select onchange="var optionVal = $(this).find(':selected').val(); doSomething(optionVal)">

                                <option value="mostSeen">Most Seen</option>
                                <option value="newst">Newest</option>
                                <option value="mostSell">Most Sell</option>
                                <option value="mostCheap">Most Cheap</option>
                                <option value="mostExpensive">Most Expensive</option>

                            </select>

那么你检查所选的选项是这样的:

function doSomething(param) {

    if ($(param.selected)) {
        alert(param + ' is selected!');
    }

}


Answer 6:

在我来说,我不知道为什么选的是总是如此。 所以我能想出的唯一办法是:

var optionSelected = false;
$( '#select_element option' ).each( function( i, el ) {
    var optionHTMLStr = el.outerHTML;

    if ( optionHTMLStr.indexOf( 'selected' ) > 0 ) {
        optionSelected = true;
        return false;
    }
});


Answer 7:

如果你只是想如果选择了选项来检查,那么你就需要通过所有选项进行迭代。 做就是了

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

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



Answer 8:

您可以通过jQuery的使用是这样的:

 $(document).ready(function(){ $('#panel_master_user_job').change(function () { var job = $('#panel_master_user_job').val(); alert(job); }) }) 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <select name="job" id="panel_master_user_job" class="form-control"> <option value="master">Master</option> <option value="user">User</option> <option value="admin">Admin</option> <option value="custom">Custom</option> </select> 



Answer 9:

如果你需要检查选项选择状态特定值

$('#selectorId option[value=YOUR_VALUE]:selected')


文章来源: How to check if an option is selected?