jQuery选择下拉选项,只有一个非空选项

jQuery选择下拉选项,只有一个非空选项,jquery,html,html-select,Jquery,Html,Html Select,我正在处理一个店面包(因此我没有编辑核心文件的选项),我们有下拉菜单来选择用户想要的名片正面和背面。有些卡只有一个选项,因此如果只有一个选项,客户端希望隐藏下拉菜单 简单,对吗 $("select").each(function(){ var count = $(this).children("option").length; if ( count == 1 ) { // there's only one option, do something } })

我正在处理一个店面包(因此我没有编辑核心文件的选项),我们有下拉菜单来选择用户想要的名片正面和背面。有些卡只有一个选项,因此如果只有一个选项,客户端希望隐藏下拉菜单

简单,对吗

$("select").each(function(){
    var count = $(this).children("option").length;
    if ( count == 1 ) {
        // there's only one option, do something
    }
});
这是可行的,但问题是系统有时会为一些下拉列表生成一个空白的
,因此实际上有两个选项,但只有一个“实际”选项:


实物期权
基本上,我需要选择只有一个
或两个
而其中一个是空的


我不能完全理解这样一个if语句的逻辑,因此如果有人有任何建议,我将不胜感激。

您可以使用
而不是
方法和
:empty
选择器:

$("select").each(function(){
    var count = $(this).find("option").not(':empty').length;
    if ( count == 1 ) {
        alert('okay')
    }
});

改变计算它们的方式:

$('select').each(function() {
    var count = 0;
    $(this).children('option').each(function() {
        if ( $(this).text() ) // true if not empty
        {
            ++count;
        }
    });
    if ( count == 1 ) // count only includes non-empty options

这应该可以处理。

您可以将选择器更改为
选项[值]
选项:不(:空)
,这取决于空的选项是否总是完全空的,没有值,也没有文本根据给出的示例,
总是这样吗?如果是这样,你可以删除
标记中没有文本或没有值属性或空字符串的值属性。哦,嘿,这是一个比我的更好的解决方案。我真不敢相信我以前没有想到过。。。这么简单。谢谢
$('select').each(function() {
    var count = 0;
    $(this).children('option').each(function() {
        if ( $(this).text() ) // true if not empty
        {
            ++count;
        }
    });
    if ( count == 1 ) // count only includes non-empty options