Comment créer : menu de recherche

Apprenez à utiliser JavaScript pour créer un menu de recherche pour filtrer les liens.

Recherche/Filtrage du menu

Comment rechercher des liens dans le menu de navigation :

Contenu de la page

Entrez une catégorie/lien spécifique dans la barre de recherche pour "filtrer" les options de recherche.

Some text..Some text..Some text..Some text..Some text..Some text..Some text..Some text..

Some other text..Some text..Some text..Some text..Some text..Some text..Some text..Some text..

Some text..

Essayez-le vous-même

Créer un menu de recherche

Étape 1 - Ajouter HTML :

<input type="text" id="mySearch" onkeyup="myFunction()" placeholder="Recherche.." title="Tapez une catégorie">
<ul id="myMenu">
  <li><a href="#">HTML</a></li>
  <li><a href="#">CSS</a></li>
  <li><a href="#">JavaScript</a></li>
  <li><a href="#">PHP</a></li>
  <li><a href="#">Python</a></li>
  <li><a href="#">jQuery</a></li>
  <li><a href="#">SQL</a></li>
  <li><a href="#">Bootstrap</a></li>
  <li><a href="#">Node.js</a></li>
</ul>

Attention :Dans cette démonstration, nous utilisons href="#",car nous n'avons pas de pages liées. Dans une situation réelle, cela devrait être un URL réel pointant vers une page spécifique.

Étape 2 - Ajouter CSS :

Définir les styles de la zone de recherche et du menu de navigation :

/* Définir le style de la zone de recherche */
#mySearch {
  width: 100%;
  font-size: 18px;
  padding: 11px;
  border: 1px solid #ddd;
}
/* Définir le style du menu de navigation */
#myMenu {
  list-style-type: none;
  padding: 0;
  margin: 0;
}
/* Définir le style des liens de navigation */
#myMenu li a {
  padding: 12px;
  text-decoration: none;
  color: black;
  display: block
}
#myMenu li a:hover {
  background-color: #eee;
}

Étape 3 - Ajouter JavaScript :

<script>
function myFunction() {
  // Déclarer les variables
  var input, filter, ul, li, a, i;
  input = document.getElementById("mySearch");
  filter = input.value.toUpperCase();
  ul = document.getElementById("myMenu");
  li = ul.getElementsByTagName("li");
  // Parcourir tous les éléments de la liste et masquer ceux qui ne correspondent pas à la requête de recherche
  for (i = 0; i < li.length; i++) {
    a = li[i].getElementsByTagName("a")[0];
    if (a.innerHTML.toUpperCase().indexOf(filter) > -1) {
      li[i].style.display = "";
    } else {
      li[i].style.display = "none";
    }
  }
}
</script>

Essayez-le vous-même

Astuce :Si vous souhaitez effectuer une recherche sensible à la casse, supprimez toUpperCase().

Pages associées

Tutoriel :Comment filtrer un tableau

Tutoriel :Comment filtrer la liste