Come filtrare/cercare in una tabella
- Pagina precedente Filtrare l'elenco
- Pagina successiva Filtrare gli elementi
Impara come utilizzare JavaScript per creare tabelle filtrabili.
Filtrare la tabella
Come utilizzare JavaScript per cercare dati specifici in una tabella.
Name | Country |
---|---|
Alfreds Futterkiste | Germania |
Berglunds snabbkop | Svezia |
Island Trading | Regno Unito |
Koniglich Essen | Germania |
Laughing Bacchus Winecellars | Canada |
Magazzini Alimentari Riuniti | Italia |
Nord/Sud | Regno Unito |
Specialità di Parigi | Francia |
Crea una tabella filtrabile
Primo passo - Aggiungi HTML:
<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Cerca nomi.."> <table id="myTable"> <tr class="header"> <th style="width:60%;">Nome</th> <th style="width:40%;">Paese</th> </tr> <tr> <td>Alfreds Futterkiste</td> <td>Germania</td> </tr> <tr> <td>Berglunds snabbkop</td> <td>Svezia</td> </tr> <tr> <td>Island Trading</td> <td>Regno Unito</td> </tr> <tr> <td>Koniglich Essen</td> <td>Germania</td> </tr> </table>
Secondo passo - Aggiungi CSS:
Imposta lo stile degli elementi di input e della tabella:
#myInput { background-image: url('/css/searchicon.png'); /* Aggiungi l'icona di ricerca nel 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 totale */ font-size: 16px; /* Ingrandisci la dimensione del carattere */ padding: 12px 20px 12px 40px; /* Aggiungi margini interni */ border: 1px solid #ddd; /* Aggiungi un bordo grigio */ margin-bottom: 12px; /* Aggiungi dello spazio sotto il campo di input */ } #myTable { border-collapse: collapse; /* Unisci i bordi */ width: 100%; /* Larghezza totale */ border: 1px solid #ddd; /* Aggiungi un bordo grigio */ font-size: 18px; /* Aumentare la dimensione del carattere */ } #myTable th, #myTable td { text-align: left; /* Allineamento del testo a sinistra */ padding: 12px; /* Aggiungere spazi interni */ } #myTable tr { /* Aggiungere bordi inferiori a tutte le righe della tabella */ border-bottom: 1px solid #ddd; } #myTable tr.header, #myTable tr:hover { /* Aggiungere sfondo grigio per l'intestazione della tabella e quando il mouse è sopra di essa */ background-color: #f1f1f1; }
Passo terzo - Aggiungere JavaScript:
<script> function myFunction() { // Dichiarare variabili var input, filter, table, tr, td, i, txtValue; input = document.getElementById("myInput"); filter = input.value.toUpperCase(); table = document.getElementById("myTable"); tr = table.getElementsByTagName("tr"); // Eseguire la scansione di tutte le righe della tabella e nascondere quelle che non corrispondono alla query di ricerca for (i = 0; i < tr.length; i++) { td = tr[i].getElementsByTagName("td")[0]; if (td) { txtValue = td.textContent || td.innerText; if (txtValue.toUpperCase().indexOf(filter) > -1) { tr[i].style.display = ""; } else { tr[i].style.display = "none"; } } } } </script>
Suggerimento:Se si desidera eseguire una ricerca case-sensitive, rimuovere toUpperCase()
。
Suggerimento:Se si desidera cercare un paese (indice 1) invece di "Nome" (indice 0), impostare tr[i].getElementsByTagName('td')[0]
Cambia in [1].
Pagine correlate
Tutorial:Come filtrare/cercare l'elenco
- Pagina precedente Filtrare l'elenco
- Pagina successiva Filtrare gli elementi