计算列表中的选项数

Dav*_*vid 6 jquery hidden option

我正在尝试计算列表中的选项数量.但是,由于搜索文本输入到输入框中,因此某些选项已被隐藏.

我开始研究.size()和.length,但只获得完整列表而不是那些未隐藏的列表.为了简化,我已经改变它以尝试找到隐藏的选项(我可以使用:不迟到).

$('#txtListSearch').keyup(function(evt) {
    if($(this).val().length < 1) {
        $('#selContactLists option').show();
    } else {
        $('#selContactLists option:not(:contains("' + $(this).val() + '"))').hide();

        if($('#selContactLists').size()) {
            $('#selContactLists option:contains("' + $(this).val() + '")').first().attr('selected', 'selected');                
        } else {
        }
    }
    console.log($('#selContactLists option').filter(':hidden'));
});
Run Code Online (Sandbox Code Playgroud)

我也尝试过:console.log($('#selContactLists option:hidden')); 我从来没有得到我期待的数字.谁能看到我哪里出错了?

更奇怪的是,如果我更改选择的"大小",以便默认显示多个项目,则在Chrome上它永远不会隐藏任何选项.

LJ2*_*LJ2 4

这对我有用,但出于兼容性原因,您可能需要手动添加和删除元素中的 css display:none ,而不是使用显示/隐藏...

alert($('#selContactLists option:not([style*=none])').length);
Run Code Online (Sandbox Code Playgroud)