Dataczwartek, 13 sierpnia 2026 Czas18:17:45
← Popularne skrypty

Skrypt 11: Filtrowanie listy elementów na żywo (wyszukiwarka)

Trudny / egzaminacyjny

Teoria

Pole wyszukiwania, które NA BIEŻĄCO (bez przycisku "Szukaj" i bez przeładowania strony) ukrywa elementy listy niepasujące do wpisanej frazy — bardzo częsty element list produktów czy filmów.

Kod (JavaScript)

<input type="text" id="szukaj" placeholder="Szukaj filmu...">
<ul id="listaFilmow">
    <li>Podróż w czasie</li>
    <li>Ostatni bastion</li>
    <li>Cichy ocean</li>
</ul>

<script>
    const pole = document.getElementById("szukaj");
    const elementyListy = document.querySelectorAll("#listaFilmow li");

    pole.addEventListener("input", function () {
        const fraza = pole.value.toLowerCase();

        for (const element of elementyListy) {
            const tekst = element.textContent.toLowerCase();
            element.style.display = tekst.includes(fraza) ? "list-item" : "none";
        }
    });
</script>

Komentarz i wyjaśnienie kodu

.toLowerCase() zamienia tekst na małe litery PO OBU stronach porównania (fraza wyszukiwania i tekst elementu), dzięki czemu wyszukiwanie nie rozróżnia wielkości liter. .includes(fraza) sprawdza, czy tekst ZAWIERA podaną frazę gdziekolwiek w środku (nie tylko na początku). Skrócony zapis warunek ? wartośćA : wartośćB to tzw. operator warunkowy — odpowiednik krótkiego if/else zwracającego jedną z dwóch wartości.

Typowe błędy

Częsty błąd to porównywanie tekstu BEZ .toLowerCase() — wyszukiwanie "podróż" nie znalazłoby wtedy elementu "Podróż w czasie" z powodu wielkiej litery P.