Jak tworzyć: menu wyszukiwania

Naucz się, jak używać JavaScript do tworzenia menu wyszukiwania do filtrowania linków.

Wyszukiwanie/Filterowanie menu

Jak wyszukiwać linki w menu nawigacyjnym:

Zawartość strony

Wprowadź specyficzną kategorię/odnośnik w polu wyszukiwania, aby "filtrować" opcje wyszukiwania.

Niektwy tekst...Niektwy tekst...Niektwy tekst...Niektwy tekst...Niektwy tekst...Niektwy tekst...Niektwy tekst...Niektwy tekst...

Niektwy inny tekst...Niektwy tekst...Niektwy tekst...Niektwy tekst...Niektwy tekst...Niektwy tekst...Niektwy tekst...Niektwy tekst...

Niektwy tekst...

Spróbuj sam

Utwórz menu wyszukiwania

Krok 1 - Dodaj 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>

Uwaga:W tym demo używamy href="#"ponieważ nie mamy linków do stron. W rzeczywistości powinno to być rzeczywiste URL prowadzące do konkretnej strony.

Krok drugi - Dodaj CSS:

Ustawienia stylu dla pola wyszukiwania i menu nawigacyjnego:

/* Ustawienia stylu dla pola wyszukiwania */
#mySearch {
  width: 100%;
  font-size: 18px;
  padding: 11px;
  border: 1px solid #ddd;
}
/* Ustawienia stylu dla menu nawigacyjnego */
#myMenu {
  list-style-type: none;
  padding: 0;
  margin: 0;
}
/* Ustawienia stylu dla linków nawigacyjnych */
#myMenu li a {
  padding: 12px;
  text-decoration: none;
  color: black;
  display: block
}
#myMenu li a:hover {
  background-color: #eee;
}

Krok trzeci - Dodaj JavaScript:

<script>
function myFunction() {
  // Deklaracja zmiennych
  var input, filter, ul, li, a, i;
  input = document.getElementById("mySearch");
  filter = input.value.toUpperCase();
  ul = document.getElementById("myMenu");
  li = ul.getElementsByTagName("li");
  // Przechodź przez wszystkie pozycje listy i ukryj te, które nie pasują do zapytania wyszukiwania
  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>

Spróbuj sam

Wskazówka:Jeśli chcesz wykonać wyszukiwanie różniące się wielkością liter, usuń toUpperCase().

Strony związane

Podręcznik:Jak filtrować tabelę

Podręcznik:Jak filtrować listę