Hoe je een tabel kunt filteren/zoeken

Leer hoe je een filterbare tabel kunt maken met JavaScript.

Tabel filteren

Hoe je JavaScript kunt gebruiken om specifieke gegevens in een tabel te zoeken.

Naam Land
Alfreds Futterkiste Germany
Berglunds snabbkop Sweden
Island Trading UK
Koniglich Essen Germany
Laughing Bacchus Winecellars Canada
Magazzini Alimentari Riuniti Italy
North/South UK
Paris specialites France

probeer het zelf maar eens

Maak een filterbare tabel

Stap 1 - Voeg HTML toe:

<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Search for names..">
<table id="myTable">
  <tr class="header">
    <th style="width:60%;">Name</th>
    <th style="width:40%;">Country</th>
  </tr>
  <tr>
    <td>Alfreds Futterkiste</td>
    <td>Germany</td>
  </tr>
  <tr>
    <td>Berglunds snabbkop</td>
    <td>Sweden</td>
  </tr>
  <tr>
    <td>Island Trading</td>
    <td>UK</td>
  </tr>
  <tr>
    <td>Koniglich Essen</td>
    <td>Germany</td>
  </tr>
</table>

Stap 2 - Voeg CSS toe:

Stel de stijl van het invoerelement en de tabel in:

#myInput {
  background-image: url('/css/searchicon.png'); /* Voeg een zoekpictogram toe aan het invoerveld */
  background-position: 10px 12px; /* Positioneer het zoekpictogram */
  background-repeat: no-repeat; /* Herhaal het pictogrambeeld niet */
  width: 100%; /* Volbreedte */
  font-size: 16px; /* Verhoog de lettergrootte */
  padding: 12px 20px 12px 40px; /* Voeg wat binnenafstand toe */
  border: 1px solid #ddd; /* Voeg een grijs randje toe */
  margin-bottom: 12px; /* Voeg wat ruimte onder het invoerveld toe */
}
#myTable {
  border-collapse: collapse; /* Merge de randen */
  width: 100%; /* Volbreedte */
  border: 1px solid #ddd; /* Voeg een grijs randje toe */
  font-size: 18px; /* Verhoog de lettergrootte */
}
#myTable th, #myTable td {
  text-align: left; /* Tekst links uitlijnen */
  padding: 12px; /* Voeg inbuisruimte toe */
}
#myTable tr {
  /* Voeg een ondersteuningsrand toe aan alle tabelrijen */
  border-bottom: 1px solid #ddd;
}
#myTable tr.header, #myTable tr:hover {
  /* Voeg een grijze achtergrondkleur toe aan de tabelkop en bij muisovergang */
  background-color: #f1f1f1;
}

Derde stap - Voeg JavaScript toe:

<script>
function myFunction() {
  // Variabelen declareren
  var input, filter, table, tr, td, i, txtValue;
  input = document.getElementById("myInput");
  filter = input.value.toUpperCase();
  table = document.getElementById("myTable");
  tr = table.getElementsByTagName("tr");
  // Alle rijen van de tabel doorzoeken en de rijen verbergen die niet overeenkomen met de zoekopdracht
  for (i = 0; i < tr.length; i++) {
    td = tr[i].getElementsByTagName("td")[0];
    if (td) {
      txtValue = td.textContent || td.innerText;
      if (txtValue.toUpperCase().indexOf(filter) > -1) {
        tr[i].style.display = "";
      } else {
        tr[i].style.display = "none";
      }
    }
  }
}
</script>

probeer het zelf maar eens

Hint:Als je een onderscheidend zoekopdracht wilt uitvoeren op hoofdletters, verwijder dan toUpperCase().

Hint:Als je op zoek bent naar een land (index 1) in plaats van naar "naam" (index 0), dien dan tr[i].getElementsByTagName('td')[0] Change to [1].

Related pages

Tutorial:How to filter/search list