Wie man Listen filtert/ sucht

Lernen Sie, wie Sie mit JavaScript eine Filterliste erstellen.

Filtern Sie die Liste

Wie Sie mit JavaScript Elemente in einer Liste suchen.

Probieren Sie es selbst aus

Erstellen Sie eine Suchliste

Schritt 1 - Fügen Sie HTML hinzu:

<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Nach Namen suchen..">
<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>

Hinweis:In dieser Demonstration verwenden wir href="#", weil wir keine Seite haben, die wir verlinken können. In der Praxis sollte dies eine reale URL zu einer bestimmten Seite sein.

Schritt 2 - Fügen Sie CSS hinzu:

Stellen Sie die Stile für das Eingabelement und die Liste ein:

#myInput {
  background-image: url('/css/searchicon.png'); /* Fügen Sie dem Eingabefeld ein Suchsymbol hinzu */
  background-position: 10px 12px; /* Positionieren Sie das Suchsymbol */
  background-repeat: no-repeat; /* Wiederholen Sie das Symbolbild nicht */
  width: 100%; /* Volle Breite */
  font-size: 16px; /* Erhöhen Sie die Zeichengröße */
  padding: 12px 20px 12px 40px; /* Fügen Sie etwas Innenabstand hinzu */
  border: 1px solid #ddd; /* Fügen Sie eine graue Umrandung hinzu */
  margin-bottom: 12px; /* Fügen Sie unter dem Eingabefeld etwas Platz hinzu */
}
#myUL {
  /* Entfernen Sie die Standardsymbolstil */
  list-style-type: none;
  padding: 0;
  margin: 0;
}
#myUL li a {
  border: 1px solid #ddd; /* Fügen Sie allen Links eine Kante hinzu */
  margin-top: -1px; /* Verhindern Sie die doppelte Rahmen */
  background-color: #f6f6f6; /* Grauer Hintergrundfarbe */
  padding: 12px; /* Fügen Sie etwas Innenabstand hinzu */
  text-decoration: none; /* Entfernen Sie die Standardtextunterstreichung */
  font-size: 18px; /* Erhöhen Sie die Zeichengröße */
  color: black; /* Fügen Sie schwarzen Textfarbe hinzu */
  display: block; /* Mach es zu einem Block-Element, um die gesamte Liste zu füllen */
}
#myUL li a:hover:not(.header) {
  background-color: #eee; /* Fügen Sie allen Links (außer dem Titel) einen Hover-Effekt hinzu */
}

Dritter Schritt - Fügen Sie JavaScript hinzu:

<script>
function myFunction() {
  // Variablen deklarieren
  var input, filter, ul, li, a, i, txtValue;
  input = document.getElementById('myInput');
  filter = input.value.toUpperCase();
  ul = document.getElementById("myUL");
  li = ul.getElementsByTagName('li');
  // Durchsuchen Sie alle Listeinträge und verbergen Sie diejenigen, die nicht mit der Suchanfrage übereinstimmen
  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>

Probieren Sie es selbst aus

Hinweis:Wenn Sie eine区分大小写的搜索ausführen möchten, löschen Sie toUpperCase().

Related pages

Tutorial:How to filter/search a table