如果没有附加“选项”,我想使用jquery隐藏“select”本身。
答案 0 :(得分:7)
假设我已正确理解您的问题,您可以使用:empty
选择器查找没有孩子的select
元素:
$("select:empty").hide();
如果<optgroup>
(或任何其他非选项元素子元素)中有空select
元素子元素,您可能需要考虑另一个答案,因为:empty
会考虑{select
1}}不是空的(它有孩子,只有option
个孩子)。
此外,当:empty
查找没有子节点(不仅仅是元素)的元素时,会包含文本节点(但请注意,注释节点会被忽略)。这意味着它只匹配select
这样的元素:
<select></select> <!--Matches this-->
<select> </select> <!--Doesn't match this-->
答案 1 :(得分:2)
$(function() {
$("select").each(function() {
if ($(this).find("option").length == 0) {
$(this).hide();
}
});
});
希望有所帮助。
答案 2 :(得分:2)
这应该有效:
$('select:not(:has(option))').hide();
答案 3 :(得分:1)
$('select').each(function () {
var $select = $(this);
if ($select.find('option').length === 0) {
$select.hide();
}
}
答案 4 :(得分:1)
不要测试它,但这应该有效:
$('select:not(:has(option))').remove();
答案 5 :(得分:1)
这样做。
$('select').each(function(){
if (!$(this).find('option').length){
$(this).hide();
}
});