如果select有选项,如果不禁用它并显示[not items],如何用jquery检查?
答案 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);
答案 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");
}