Bagaimana untuk menyaring/pencarian tabel

Belajar bagaimana untuk menggunakan JavaScript untuk membuat tabel yang dapat disaring.

Filter tabel

Bagaimana cara menggunakan JavaScript untuk mencari data khusus di tabel.

Name Country
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

Coba sendiri

Buat tabel yang dapat disaring

Langkah pertama - Tambahkan HTML:

<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>

Langkah kedua - Tambahkan CSS:

Atur gaya elemen input dan tabel:

#myInput {
  background-image: url('/css/searchicon.png'); /* Menambahkan ikon pencarian di kotak masukan */
  background-position: 10px 12px; /* Menempatkan ikon pencarian */
  background-repeat: no-repeat; /* Tidak mengulangi gambar ikon */
  width: 100%; /* Panjang penuh */
  font-size: 16px; /* Memperbesar ukuran font */
  padding: 12px 20px 12px 40px; /* Menambahkan jarak internal */
  border: 1px solid #ddd; /* Menambahkan garis bingkai putih */
  margin-bottom: 12px; /* Menambahkan ruang di bawah kotak masukan */
}
#myTable {
  border-collapse: collapse; /* Menggabungkan bingkai */
  width: 100%; /* Panjang penuh */
  border: 1px solid #ddd; /* Menambahkan garis bingkai putih */
  font-size: 18px; /* Besar font yang di tingkatkan */
}
#myTable th, #myTable td {
  text-align: left; /* Rata kiri teks */
  padding: 12px; /* Tambahkan jarak internal */
}
#myTable tr {
  /* Tambahkan garis bawah untuk semua baris tabel */
  border-bottom: 1px solid #ddd;
}
#myTable tr.header, #myTable tr:hover {
  /* Tambahkan warna latar belakang abu-abu untuk header tabel dan saat mouse berada di atasnya */
  background-color: #f1f1f1;
}

Tahap ketiga - Tambahkan JavaScript:

<script>
function myFunction() {
  // Deklarasikan variabel
  var input, filter, table, tr, td, i, txtValue;
  input = document.getElementById("myInput");
  filter = input.value.toUpperCase();
  table = document.getElementById("myTable");
  tr = table.getElementsByTagName("tr");
  // Melintasi semua baris tabel dan menyembunyikan baris yang tidak cocok dengan query pencarian
  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>

Coba sendiri

Petunjuk:Jika Anda ingin melaksanakan pencarian yang membedakan huruf besar dan kecil, hapus toUpperCase()

Petunjuk:Jika ingin mencari negara (indeks 1) bukannya "nama" (indeks 0), silakan tr[i].getElementsByTagName('td')[0] Ubah ke [1].

Halaman yang berhubungan

Panduan:Bagaimana untuk menyaring/pencarian daftar