Comment filtrer/rechercher une liste
- Previous page Empty input validation
- Next page Filter table
Apprendre à utiliser JavaScript pour créer une liste filtrée.
Filtrer la liste
Comment utiliser JavaScript pour rechercher des éléments dans une liste.
Créer une liste de recherche
Première étape - Ajouter HTML :
<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Rechercher des noms.."> <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>
Attention :Dans cette démonstration, nous utilisons href="#" car nous n'avons pas de page à laquelle se connecter. Dans une application réelle, cela devrait être une URL réelle pointant vers une page spécifique.
Deuxième étape - Ajouter CSS :
Définir les styles des éléments d'entrée et de la liste :
#myInput { background-image: url('/css/searchicon.png'); /* Ajouter une icône de recherche à l'entrée */ background-position: 10px 12px; /* Positionner l'icône de recherche */ background-repeat: no-repeat; /* Ne pas répéter l'image d'icône */ width: 100%; /* Largeur pleine */ font-size: 16px; /* Augmenter la taille de la police */ padding: 12px 20px 12px 40px; /* Ajouter de la marge interne */ border: 1px solid #ddd; /* Ajouter une bordure grise */ margin-bottom: 12px; /* Ajouter de l'espace en dessous du champ d'entrée */ } #myUL { /* Supprimer les styles de liste par défaut */ list-style-type: none; padding: 0; margin: 0; } #myUL li a { border: 1px solid #ddd; /* Ajouter une bordure pour tous les liens */ margin-top: -1px; /* Empêcher les bordures doubles */ background-color: #f6f6f6; /* Couleur de fond grise */ padding: 12px; /* Ajouter un peu de marge interne */ text-decoration: none; /* Supprimer la soulignement de texte par défaut */ font-size: 18px; /* Augmenter la taille de la police */ color: black; /* Ajouter une couleur de texte noire */ display: block; /* Le rendre en élément en bloc pour remplir toute la liste */ } #myUL li a:hover:not(.header) { background-color: #eee; /* Ajouter un effet de survol pour tous les liens (sauf les titres) */ }
Troisième étape - Ajouter JavaScript :
<script> function myFunction() { // Déclarer des variables var input, filter, ul, li, a, i, txtValue; input = document.getElementById('myInput'); filter = input.value.toUpperCase(); ul = document.getElementById("myUL"); li = ul.getElementsByTagName('li'); // Parcourir tous les éléments de la liste et masquer ceux qui ne correspondent pas à la recherche 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>
Avis :Si vous souhaitez effectuer une recherche sensible à la casse, supprimez toUpperCase().
Related pages
Tutorial:How to filter/search table
- Previous page Empty input validation
- Next page Filter table