Comment filtrer/rechercher dans un tableau
- Page précédente Filtrer la liste
- Page suivante Filtrer les éléments
Apprendre à utiliser JavaScript pour créer des tableaux filtrables.
Filtrer un tableau
Comment utiliser JavaScript pour rechercher des données spécifiques dans un tableau.
Name | Country |
---|---|
Alfreds Futterkiste | Allemagne |
Berglunds snabbkop | Sweden |
Island Trading | UK |
Koniglich Essen | Allemagne |
Laughing Bacchus Winecellars | Canada |
Magazzini Alimentari Riuniti | Italie |
Nord/Sud | UK |
Specialités de Paris | France |
Créez un tableau filtrable
Étape 1 - Ajoutez HTML :
<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Recherchez des noms.."> <table id="myTable"> <tr class="header"> <th style="width:60%;">Nom</th> <th style="width:40%;">Pays</th> </tr> <tr> <td>Alfreds Futterkiste</td> <td>Allemagne</td> </tr> <tr> <td>Berglunds snabbkop</td> <td>Suède</td> </tr> <tr> <td>Island Trading</td> <td>UK</td> </tr> <tr> <td>Koniglich Essen</td> <td>Allemagne</td> </tr> </table>
Étape 2 - Ajoutez CSS :
Définir les styles des éléments d'entrée et du tableau :
#myInput { background-image: url('/css/searchicon.png'); /* Ajoute une icône de recherche dans la zone de saisie */ background-position: 10px 12px; /* Positionne l'icône de recherche */ background-repeat: no-repeat; /* Ne répète pas l'image de l'icône */ width: 100%; /* Largeur complète */ font-size: 16px; /* Augmente la taille de la police */ padding: 12px 20px 12px 40px; /* Ajoute de la marge interne */ border: 1px solid #ddd; /* Ajoute une bordure grise */ margin-bottom: 12px; /* Ajoute de l'espace en dessous de la zone de saisie */ } #myTable { border-collapse: collapse; /* Fusionne les bordures */ width: 100%; /* Largeur complète */ border: 1px solid #ddd; /* Ajoute une bordure grise */ font-size: 18px; /* Agrandir la taille de la police */ } #myTable th, #myTable td { text-align: left; /* Aligner le texte à gauche */ padding: 12px; /* Ajouter des marges internes */ } #myTable tr { /* Ajouter une bordure inférieure pour toutes les lignes du tableau */ border-bottom: 1px solid #ddd; } #myTable tr.header, #myTable tr:hover { /* Ajouter une couleur de fond grise pour l'en-tête du tableau et lors du survol de la souris */ background-color: #f1f1f1; }
Troisième étape - Ajouter JavaScript :
<script> function myFunction() { // Déclaration des variables var input, filter, table, tr, td, i, txtValue; input = document.getElementById("myInput"); filter = input.value.toUpperCase(); table = document.getElementById("myTable"); tr = table.getElementsByTagName("tr"); // Parcourir toutes les lignes du tableau et masquer celles qui ne correspondent pas à la requête de recherche 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>
Avis :Si vous souhaitez effectuer une recherche sensible à la casse, supprimez toUpperCase()
。
Avis :Si vous souhaitez rechercher le pays (index 1) plutôt que le "nom" (index 0), veuillez tr[i].getElementsByTagName('td')[0]
Passer à [1].
Pages associées
Tutoriel :Comment filtrer / rechercher une liste
- Page précédente Filtrer la liste
- Page suivante Filtrer les éléments