Cách lọc/tìm kiếm bảng

Học cách sử dụng JavaScript để tạo bảng có thể lọc.

Lọc bảng

Cách sử dụng JavaScript để tìm kiếm dữ liệu cụ thể trong bảng.

Tên Nước ngoài
Alfreds Futterkiste Đức
Berglunds snabbkop Thụy Điển
Island Trading UK
Koniglich Essen Đức
Laughing Bacchus Winecellars Canada
Magazzini Alimentari Riuniti Ý
Bắc/Nam UK
Paris specialites Pháp

thử ngay lập tức

Tạo bảng có thể lọc

Bước 1 - Thêm HTML:

<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Tìm kiếm tên...">
<table id="myTable">
  <tr class="header">
    <th style="width:60%;">Tên</th>
    <th style="width:40%;">Quốc gia</th>
  </tr>
  <tr>
    <td>Alfreds Futterkiste</td>
    <td>Đức</td>
  </tr>
  <tr>
    <td>Berglunds snabbkop</td>
    <td>Thụy Điển</td>
  </tr>
  <tr>
    <td>Island Trading</td>
    <td>UK</td>
  </tr>
  <tr>
    <td>Koniglich Essen</td>
    <td>Đức</td>
  </tr>
</table>

Bước 2 - Thêm CSS:

Đặt phong cách cho phần nhập và bảng:

#myInput {
  background-image: url('/css/searchicon.png'); /* Thêm biểu tượng tìm kiếm vào ô nhập */
  background-position: 10px 12px; /* Đặt vị trí biểu tượng tìm kiếm */
  background-repeat: no-repeat; /* Không lặp lại hình ảnh biểu tượng */
  width: 100%; /* Độ rộng toàn bộ */
  font-size: 16px; /* Tăng kích thước字体 */
  padding: 12px 20px 12px 40px; /* Thêm một khoảng lề trong */
  border: 1px solid #ddd; /* Thêm viền xám */
  margin-bottom: 12px; /* Thêm một khoảng trống dưới ô nhập */
}
#myTable {
  border-collapse: collapse; /* Kết hợp viền */
  width: 100%; /* Độ rộng toàn bộ */
  border: 1px solid #ddd; /* Thêm viền xám */
  font-size: 18px; /* Tăng kích thước chữ */
}
#myTable th, #myTable td {
  text-align: left; /* Đặt văn bản sang trái */
  padding: 12px; /* Thêm lề trong */
}
#myTable tr {
  /* Thêm đường底线 cho tất cả các hàng bảng */
  border-bottom: 1px solid #ddd;
}
#myTable tr.header, #myTable tr:hover {
  /* Thêm màu nền xám cho tiêu đề bảng và khi chuột trỏ qua */
  background-color: #f1f1f1;
}

Bước 3 - Thêm JavaScript:

<script>
function myFunction() {
  // Định nghĩa biến
  var input, filter, table, tr, td, i, txtValue;
  input = document.getElementById("myInput");
  filter = input.value.toUpperCase();
  table = document.getElementById("myTable");
  tr = table.getElementsByTagName("tr");
  // Duyệt qua tất cả các hàng bảng và ẩn những hàng không khớp với truy vấn tìm kiếm
  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>

thử ngay lập tức

Hướng dẫn:Nếu bạn muốn thực hiện tìm kiếm phân biệt chữ hoa thường, hãy xóa toUpperCase()

Hướng dẫn:Nếu bạn muốn tìm kiếm quốc gia (ký tự 1) thay vì 'tên' (ký tự 0), hãy đặt tr[i].getElementsByTagName('td')[0] Thay đổi thành [1]。

Trang liên quan

Giáo trình:Cách lọc/tìm kiếm danh sách