Sto cercando di contare il numero di opzioni in un elenco. Tuttavia, alcune delle opzioni sono state nascoste a causa del testo di ricerca inserito in una casella di input.Contare il numero di opzioni in un elenco
Ho iniziato a cercare in .size() e .length ma ottenevo solo l'elenco completo anziché quelli che non erano nascosti. Per semplificare, l'ho modificato per cercare e trovare le opzioni nascoste (posso usare: non più tardi).
$('#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'));
});
Ho anche provato: console.log ($ ('# selContactLists opzione: hidden')); Non ho mai ottenuto il numero che mi aspetto. Qualcuno può vedere dove sto andando male?
Ancora più strano, è che se cambio la "dimensione" della selezione in modo che venga visualizzato più di un elemento per impostazione predefinita, su Chrome non nasconde mai alcuna delle opzioni.
puoi pubblicare anche un esempio HTML? – Stefan
Side-Note su 'size()' perchè youm lo ha inserito. È stato contrassegnato come depracato. Dalla documentazione: 'Il metodo .size() è funzionalmente equivalente alla proprietà .length; tuttavia, la proprietà .length è preferibile perché non ha il sovraccarico di una chiamata di funzione. (http://api.jquery.com/size/) – Nope
Su quali basi si nascondono o si mostrano le opzioni? –