ฝาก/ค้นหาตาราง

เรียนรู้ว่าจะใช้ JavaScript ทำตารางที่สามารถกรองได้

กรองตาราง

ฝากทางใช้ JavaScript ค้นหาข้อมูลเฉพาะในตาราง。

Name Country
Alfreds Futterkiste Germany
Berglunds snabbkop สวีเดน
Island Trading UK
Koniglich Essen Germany
Laughing Bacchus Winecellars Canada
Magazzini Alimentari Riuniti Italy
North/South UK
Paris specialites France

ลองด้วยตัวเอง

สร้างตารางที่สามารถกรองได้

ขั้นที่ 1 - เพิ่ม 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>

ขั้นที่ 2 - เพิ่ม CSS:

ตั้งรูปแบบสำหรับตัวเลือกข้อมูลและตาราง:

#myInput {
  background-image: url('/css/searchicon.png'); /* ใส่ตราสัญลักษณ์การค้นหาในช่องบอก */
  background-position: 10px 12px; /* ตำแหน่งตราสัญลักษณ์การค้นหา */
  background-repeat: no-repeat; /* ไม่ซ้ำแบบรูปภาพ */
  width: 100%; /* ความกว้างเต็ม */
  font-size: 16px; /* ขยายขนาดตัวอักษร */
  padding: 12px 20px 12px 40px; /* เพิ่มระยะห่างด้านใน */
  border: 1px solid #ddd; /* กำหนดเส้นขอบสีเทา */
  margin-bottom: 12px; /* เพิ่มช่องว่างด้านล่างของช่องบอก */
}
#myTable {
  border-collapse: collapse; /* รวมเส้นขอบ */
  width: 100%; /* ความกว้างเต็ม */
  border: 1px solid #ddd; /* กำหนดเส้นขอบสีเทา */
  font-size: 18px; /* ขยายขนาดตัวอักษร */
}
#myTable th, #myTable td {
  text-align: left; /* จัดตัวอักษรซ้าย */
  padding: 12px; /* ใส่ระยะเว้นด้านใน */
}
#myTable tr {
  /* ใส่เส้นต่ำสีดำสำหรับบรรทัดตารางทั้งหมด */
  border-bottom: 1px solid #ddd;
}
#myTable tr.header, #myTable tr:hover {
  /* ใส่สีพื้นหลังเทาสำหรับหัวตารางและตอนเคาะมือเหนือ */
  background-color: #f1f1f1;
}

ขั้นที่สาม - เพิ่ม JavaScript:

<script>
function myFunction() {
  // ประกาศตัวแปร
  var input, filter, table, tr, td, i, txtValue;
  input = document.getElementById("myInput");
  filter = input.value.toUpperCase();
  table = document.getElementById("myTable");
  tr = table.getElementsByTagName("tr");
  // วนลูปทุกบรรทัดตาราง และซ่อนบรรทัดที่ไม่ตรงกับคำค้นหา
  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>

ลองด้วยตัวเอง

คำเตือน:ถ้าคุณต้องการทำการค้นหาตามขนาดตัวอักษร โปรดลบ toUpperCase()

คำเตือน:ถ้าต้องการค้นหาประเทศ (ดัชนี 1) แทนที่จะค้นหา "ชื่อ" (ดัชนี 0) โปรด tr[i].getElementsByTagName('td')[0] 更改为 [1]。

相关页面

教程:如何过滤/搜索列表