Hoe je een lijst filtert/zocht
- Previous page Empty input validation
- Next page Filter table
Leer hoe je een filterlijst met JavaScript maakt.
Filter lijst
Hoe je JavaScript gebruikt om items in een lijst te zoeken.
Maak een zoeklijst
Stap 1 - Voeg HTML toe:
<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Zoek naar namen.."> <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>
Opmerking:In deze demonstratie gebruiken we href="#" omdat we geen pagina kunnen koppelen. In een echte toepassing zou dit een echte URL moeten zijn die naar een specifieke pagina verwijst.
Stap 2 - Voeg CSS toe:
Stel de stijl van het invoerelement en de lijst in:
#myInput { background-image: url('/css/searchicon.png'); /* Voeg een zoekpictogram toe aan het invoerveld */ background-position: 10px 12px; /* Plaats het zoekpictogram */ background-repeat: no-repeat; /* Herhaal het pictogram niet */ width: 100%; /* Volbreedte */ font-size: 16px; /* Verhoog de lettergrootte */ padding: 12px 20px 12px 40px; /* Voeg wat inspringing toe */ border: 1px solid #ddd; /* Voeg een grijs randje toe */ margin-bottom: 12px; /* Voeg wat ruimte toe onder het invoerveld */ } #myUL { /* Verwijder de standaard lijststijl */ list-style-type: none; padding: 0; margin: 0; } #myUL li a { border: 1px solid #ddd; /* Voeg een rand toe aan alle links */ margin-top: -1px; /* Voorkom dubbele randen */ background-color: #f6f6f6; /* Grijs achtergrondkleur */ padding: 12px; /* Voeg wat inspringing toe */ text-decoration: none; /* Verwijder de standaard onderstreping van de tekst */ font-size: 18px; /* Verhoog de lettergrootte */ color: black; /* Voeg zwarte tekstkleur toe */ display: block; /* Maak het tot een blokelement om de hele lijst te vullen */ } #myUL li a:hover:not(.header) { background-color: #eee; /* Voeg een hover-effect toe aan alle links (behalve de titel) */ }
Derde stap - Voeg JavaScript toe:
<script> function myFunction() { // Variabelen declareren var input, filter, ul, li, a, i, txtValue; input = document.getElementById('myInput'); filter = input.value.toUpperCase(); ul = document.getElementById("myUL"); li = ul.getElementsByTagName('li'); // Loop door alle lijstitems heen en verberg die die niet overeenkomen met de zoekopdracht 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>
Tip:Als je een hoofdlettergevoelige zoekopdracht wilt uitvoeren, verwijder toUpperCase().
Related pages
Tutorial:How to filter/search a table
- Previous page Empty input validation
- Next page Filter table