Jak filtrować/szukać w liście
- Poprzednia strona Walidacja pustego wejścia
- Następna strona Filtrowanie tabeli
Naucz się, jak używać JavaScript do tworzenia list filtrujących.
Filtrowanie listy
Jak używać JavaScript do wyszukiwania elementów listy.
Utwórz listę wyszukiwaną
Krok 1 - Dodaj HTML:
<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Szukaj nazw..."> <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>
Uwaga:W tym przykładzie używamy href="#", ponieważ nie mamy strony do której można by linkować. W rzeczywistym zastosowaniu powinno to być prawdziwe URL strony.
Krok 2 - Dodaj CSS:
Ustaw styl elementu wejściowego i listy:
#myInput { background-image: url('/css/searchicon.png'); /* Dodaj ikonę wyszukiwania do pola wejściowego */ background-position: 10px 12px; /* Umieść ikonę wyszukiwania */ background-repeat: no-repeat; /* Nie powtarzaj obrazu ikony */ width: 100%; /* Pełna szerokość */ font-size: 16px; /* Zwiększ rozmiar czcionki */ padding: 12px 20px 12px 40px; /* Dodaj trochę wewnętrznych marginesów */ border: 1px solid #ddd; /* Dodaj szary obramowanie */ margin-bottom: 12px; /* Dodaj trochę przestrzeni poniżej pola wejściowego */ } #myUL { /* Usuń domyślny styl listy */ list-style-type: none; padding: 0; margin: 0; } #myUL li a { border: 1px solid #ddd; /* Dodaj krawędzie dla wszystkich linków */ margin-top: -1px; /* Zapobiegaj podwójnym krawędziom */ background-color: #f6f6f6; /* Szary kolor tła */ padding: 12px; /* Dodaj trochę wewnętrznych marginesów */ text-decoration: none; /* Usuń domyślną podkreślenie tekstu */ font-size: 18px; /* Zwiększ rozmiar czcionki */ color: black; /* Dodaj czarny kolor tekstu */ display: block; /* Zrób z tego blokowy element, aby wypełnić całą listę */ } #myUL li a:hover:not(.header) { background-color: #eee; /* Dodaj efekt podświetlania dla wszystkich linków (oprócz nagłówka) */ }
Krok trzeci - Dodaj JavaScript:
<script> function myFunction() { // Zadeklaruj zmienne var input, filter, ul, li, a, i, txtValue; input = document.getElementById('myInput'); filter = input.value.toUpperCase(); ul = document.getElementById("myUL"); li = ul.getElementsByTagName('li'); // Przejdz 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]; txtValue = a.textContent || a.innerText; if (txtValue.toUpperCase().indexOf(filter) > -1) { li[i].style.display = ""; } else { li[i].style.display = "none"; } } } </script>
Wskazówka:Jeśli chcesz wykonać wyszukiwanie różnicujące wielkość liter, usuń toUpperCase().
Strony związane
Tutorial:Jak filtrować/wyszukiwać tabelę
- Poprzednia strona Walidacja pustego wejścia
- Następna strona Filtrowanie tabeli