リスト内のオプションの数を数えようとしています。ただし、入力ボックスに入力された検索テキストが原因で、一部のオプションが非表示になっています。
私は .size() と .length を調べ始めましたが、非表示になっていないリストではなく、完全なリストしか取得していませんでした。簡単にするために、隠しオプションを見つけようとするように変更しました (:not later を使用できます)。
$('#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'));
});
私も試しました: console.log($('#selContactLists option:hidden')); 思ったほどの数字は出ません。誰かが私が間違っているところを見ることができますか?
さらに奇妙なことに、デフォルトで複数のアイテムが表示されるように選択の「サイズ」を変更すると、クロムではオプションが非表示になりません。