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

scf*_*rg5 3 html jquery html-select

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

容易,对吗?

$("select").each(function(){
    var count = $(this).children("option").length;
    if ( count == 1 ) {
        // there's only one option, do something
    }
});
Run Code Online (Sandbox Code Playgroud)

这是有效的,但问题是系统有时会<option>为某些下拉列表生成空白,因此实际上有两个选项,但只有一个"真实"选项:

<select>
    <option></option>
    <option value="Something">A real option</option>
</select>
Run Code Online (Sandbox Code Playgroud)

基本上,我需要选择<select>只有一个<option>或两个<option>s而一个只是空的s.

我无法完全理解这种if语句的逻辑,所以如果有人有任何建议,我将不胜感激.

und*_*ned 5

您可以使用not方法和:empty选择器:

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

DEMO