Hvordan man opretter: Søgemenu

Lær at bruge JavaScript til at oprette en søgemenu til at filtrere links.

Søg/Filter menu

Hvordan man søger links i navigationsmenuen:

Sideindhold

Indtast en bestemt kategori/lænk i søgefeltet for at "filtrere" søgeindstillingerne.

Visse tekst...Visse tekst...Visse tekst...Visse tekst...Visse tekst...Visse tekst...Visse tekst...Visse tekst...

Visse andre tekst...Visse tekst...Visse tekst...Visse tekst...Visse tekst...Visse tekst...Visse tekst...Visse tekst...

Visse tekst...

Prøv det selv

Opret søgemenu

Første trin - Tilføj HTML:

<input type="text" id="mySearch" onkeyup="myFunction()" placeholder="Search.." title="Type in a category">
<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>

Bemærk:I denne demonstration bruger vi href="#"på grund af, at vi ikke har nogen linker at følge. I virkeligheden bør dette være en rigtig URL, der henviser til en bestemt side.

Andet trin - Tilføj CSS:

Indstil stilen for søgefeltet og navigationsmenuen:

/* Angiv stilen for søgefeltet */
#mySearch {
  bredde: 100%;
  skriftstørrelse: 18px;
  margning: 11px;
  kanter: 1px solid #ddd;
}
/* Angiv stilen for navigationsmenuen */
#myMenu {
  listeemne-type: ingen;
  margning: 0;
  margning: 0;
}
/* Angiv stilen for navigationslinks */
#myMenu li a {
  margning: 12px;
  tekstdekorering: ingen;
  farve: sort;
  display: blok
}
#myMenu li a:hover {
  baggrundsfarve: #eee;
}

Tredje trin - Tilføj JavaScript:

<script>
function myFunction() {
  // Deklarere variabler
  var input, filter, ul, li, a, i;
  input = document.getElementById("mySearch");
  filter = input.value.toUpperCase();
  ul = document.getElementById("myMenu");
  li = ul.getElementsByTagName("li");
  // Gennemløb alle listeemner og skjul dem, der ikke matcher søgeforespørgslen
  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>

Prøv det selv

Vedligeholdelse:Hvis du vil udføre en forskrivelsesfølsom søgning, skal du fjerne toUpperCase().

Relaterede sider

Instruktioner:Hvordan filtrere tabeller

Instruktioner:How to filter list