Come filtrare/cercare una lista
- Pagina precedente Validazione dell'input vuoto
- Pagina successiva Filtrare la tabella
Impara come creare una lista filtrata utilizzando JavaScript.
Filtra la lista
Come utilizzare JavaScript per cercare elementi in una lista.
Crea una lista di ricerca
Primo passo - Aggiungi HTML:
<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Cerca nomi.."> <ul id="myUL"> <li><a href="#">Adele</a></li> <li><a href="#">Agnes</a></li> <li><a href="#">Billy</a></li> <li><a href="#">Bob</a></li> <li><a href="#">Calvin</a></li> <li><a href="#">Christina</a></li> <li><a href="#">Cindy</a></li> </ul>
Attenzione:In questa dimostrazione, usiamo href="#" perché non abbiamo una pagina a cui collegarci. Nella pratica, dovrebbe essere un URL reale che punti a una pagina specifica.
Secondo passo - Aggiungi CSS:
Imposta lo stile degli elementi di input e dell'elenco:
#myInput { background-image: url('/css/searchicon.png'); /* Aggiungi l'icona di ricerca al campo di input */ background-position: 10px 12px; /* Posiziona l'icona di ricerca */ background-repeat: no-repeat; /* Non ripeti l'immagine dell'icona */ width: 100%; /* Larghezza piena */ font-size: 16px; /* Aumenta la dimensione del carattere */ padding: 12px 20px 12px 40px; /* Aggiungi un po' di spazi interni */ border: 1px solid #ddd; /* Aggiungi un bordo grigio */ margin-bottom: 12px; /* Aggiungi dello spazio sotto il campo di input */ } #myUL { /* Rimuovi lo stile elenco predefinito */ list-style-type: none; padding: 0; margin: 0; } #myUL li a { border: 1px solid #ddd; /* Aggiungi un bordo per tutti i link */ margin-top: -1px; /* Previene i bordi a doppio margine */ background-color: #f6f6f6; /* Colore di sfondo grigio */ padding: 12px; /* Aggiungi alcune margini interne */ text-decoration: none; /* Rimuovi l'underline di testo predefinito */ font-size: 18px; /* Aumenta la dimensione del font */ color: black; /* Aggiungi un colore di testo nero */ display: block; /* Rendi l'elemento un blocco per riempire l'intera lista */ } #myUL li a:hover:not(.header) { background-color: #eee; /* Aggiungi un effetto di hover per tutti i link (tranne i titoli) */ }
Passo 3 - Aggiungi JavaScript:
<script> function myFunction() { // Dichiarare variabili var input, filter, ul, li, a, i, txtValue; input = document.getElementById('myInput'); filter = input.value.toUpperCase(); ul = document.getElementById("myUL"); li = ul.getElementsByTagName('li'); // Eseguire la scansione di tutti gli elementi della lista e nascondere quelli che non corrispondono alla query di ricerca for (i = 0; i < li.length; i++) { a = li[i].getElementsByTagName("a")[0]; txtValue = a.textContent || a.innerText; if (txtValue.toUpperCase().indexOf(filter) > -1) { li[i].style.display = ""; } else { li[i].style.display = "none"; } } } </script>
Suggerimento:Se si desidera eseguire una ricerca con distinzione tra maiuscole e minuscole, rimuovere toUpperCase().
Pagine correlate
Tutorial:Come filtrare/cercare una tabella
- Pagina precedente Validazione dell'input vuoto
- Pagina successiva Filtrare la tabella