Simple JavaScript Searchbar

JavaScript, Webontwikkeling

Gepubliceerd: 27.10.2023

Zoekbalken zijn een veelvoorkomend verschijnsel op websites. Je ziet ze overal in allerlei vormen en maten. Sommige zijn gewoon eenvoudige tekstzoekbalken en sommige zijn grote complexe zoekbalken die een database bevragen of API-calls doen.

In dit artikel zal ik je laten zien hoe je een eenvoudige tekstzoekbalk kunt maken die zoekt in een lijst van HTML-elementen.

Allereerst, maak je HTML.

  
<input type="text" placeholder="Zoek fruitsoorten..." id="searchBar">
<ul id="fruits-list">
    <li>Appel</li>
    <li>Peer</li>
    <li>Banaan</li>
    <li>Sinaasappel</li>
</ul>

Deze code zal een zeer eenvoudige lijst op het scherm weergeven die er ongeveer zo uitziet:
Searchbar HTML example

Vervolgens kunnen we een scripttag onder deze code schrijven en beginnen met het schrijven van onze JavaScript. We beginnen met het toevoegen van een "keyup" gebeurtenisluisteraar aan de tekstzoekbalk. JavaScript staat je toe om dezelfde code op verschillende manieren te schrijven. In dit voorbeeld zal ik een "arrow function" gebruiken en haal ik de zoekwaarde uit de "evt" parameter.

  
<script>
    document.getElementById("searchbar").addEventlistener("keyup", evt => {
    	const searchValue = evt.target.value.toLowerCase()
    })
</script>

Elke keer dat je iets in het tekstveld typt, wordt de waarde van wat je hebt getypt omgezet naar kleine letters en opgeslagen in de searchValue variabele. De reden waarom we .toLowerCase() gebruiken, is om de zoekbalk niet-hoofdlettergevoelig te maken.

Vervolgens selecteren we alle <li> -elementen binnen ons <ul>-element en lopen we erdoorheen om hun inhoud te controleren.

  
<script>
    document.getElementById("searchbar").addEventlistener("keyup", evt => {
    	const searchValue = evt.target.value.toLowerCase()
        for (const li of document.querySelector("#fruits-list")) {
            const content = li.innerText.toLowerCase()
            li.style.display = content.includes(searchValue) ? "list-item" : "none"
        }
    })
</script>

De inhoud van het lijstitem is de innerText, omgezet naar kleine letters om hoofdlettergevoeligheid te negeren. Om de zichtbaarheid van het

  • -element te wijzigen, gebruiken we een voorwaardelijke (ternary) operator. In het kort: Operand één is een voorwaarde, het deel na het "?" wordt gebruikt als de voorwaarde "waar" is, het deel na ":" wordt gebruikt als de voorwaarde "onwaar" is.

    Deze code zal nu het element tonen wanneer de tekst ervan je gezochte string bevat en het verbergen wanneer dat niet het geval is.

    Er zijn veel verschillende manieren om deze code te schrijven en dezelfde resultaten te bereiken. Dit artikel toont een zeer eenvoudige en compacte JavaScript-zoekbalk. Complete code:

    <input type="text" placeholder="Search fruits..." id="searchBar">
    <ul id="fruits-list">
        <li>Appel</li>
        <li>Peer</li>
        <li>Banaan</li>
        <li>Sinaasappel</li>
    </ul>  
    <script>
        document.getElementById("searchbar").addEventlistener("keyup", evt => {
        	const searchValue = evt.target.value.toLowerCase()
            for (const li of document.querySelector("#fruits-list")) {
                const content = li.innerText.toLowerCase()
                li.style.display = content.includes(searchValue) ? "list-item" : "none"
            }
        })
    </script>
    
  • Lees hier onze blogs!

    Breid je kennis uit met de 4BIS Blog...

    Artificial Intelligence vs Machine Learning: Dit is het verschil

    Software modernisering, kennisbank, Automatisering, Webontwikkeling

    Tegenwoordig worden er veel termen door elkaar gegooid. Zo hoor je wel eens over Artificial Intelligence, maar ook over Machine Learning en misschien zelfs Deep Learning. Hierdoor kan het nogal onduidelijk worden wat nu precies de term is die je zoekt...

    Lees meer

    Integraties: 5 redenen waarom je al je tools wilt koppelen

    Software modernisering, Webontwikkeling, Bedrijfssoftware, kennisbank, Automatisering

    Integraties zijn uiterst belangrijk om een soepele samenwerking tussen al uw tools te waarborgen. Helaas gebeurt het nog vaak dat bedrijven sommige activiteiten minder soepel laten verlopen door hun tools niet goed te koppelen. Dit is natuurlijk zonde...

    Lees meer

    Geen veilige server verbinding: Dit zijn de meest voorkomende verbindingsfouten

    kennisbank

    Foutmeldingen bij het opzoeken van een website komen vaak voor. Ondanks dat ze vaak gemakkelijk op te lossen zijn, gaat dit nog vaak fout. Zo kan het liggen aan een klein foutje, maar hierdoor kan een verbindingsfout direct voorkomen. Om deze fouten...

    Lees meer

    En wat kunnen we voor jou betekenen?_

    Wil je meer weten of heb je interesse? Neem dan gerust direct contact met ons op, per telefoon of via de mail.
    Of maak gebruik van één van onze contactformulieren zodat we je zo snel en gepast mogelijk antwoord kunnen geven. We horen graag van je!

    back to top