如果select有选项,如何检查jquery?

时间:2011-02-11 17:18:15

标签: jquery html

如果select有选项,如果不禁用它并显示[not items],如何用jquery检查?

8 个答案:

答案 0 :(得分:35)

一种方法:

if ($('#myselect option').length == 0) {
    $('#myselect').hide();
}

答案 1 :(得分:5)

var $select = $('input:select option');
if(!$select.length )
    $select.attr('disabled', true);

或者:

$('select:not(:has(option))').attr('disabled', true);

答案 2 :(得分:3)

另一种方法是使用jQuery has 功能

if ($('#myselect').has('option').length == 0) 
{
    // Hide and disable select input here
}

有关jQuery has 功能的信息,请参阅: https://api.jquery.com/has/

答案 3 :(得分:2)

select:not(:has(option))

是您要寻找的选择器。您可以使用它来查找空的选择框,禁用它们,然后添加一个选项,说“没有可用选项”或某些此类消息 - 如下所示:

var noOptions = $('<option/>').html('No options');
$('select:not(:has(option))').attr('disabled',true).append(noOptions);

此处的实例:http://jsfiddle.net/f3myz/

答案 4 :(得分:1)

如果你有空选项,那么你可以:

#Allways you must have the empty option
if ($("select#your_class").children().size() == 1) {
  alert("Without options")
  $("select#your_class").hide()
} else {
  alert("With options")
  $("select#your_class").show()

答案 5 :(得分:0)

$('select.class>option').size()

或者,如果您选择的ID是非班级

$('select#id>option').size()

它将向您显示里面有多少个选项

答案 6 :(得分:0)

let baseCategory = $('#base-categories');

if (baseCategory.children().length > 0) {
  let optionCount = baseCategory.children().length;
  console.log("select has " + optionCount + " option ")
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="base-categories">
  <option value="0">option 1</option>
</select>

答案 7 :(得分:-1)

我对此进行了测试,并且效果很好,希望对您有所帮助:

        if($("#myselect").html() == ""){
            $("#myselect").html("<option>[not items]</option>");
            $("#myselect").addProp("disabled","disabled");
        }