如何过滤/搜索表格

学习如何使用 JavaScript 创建可过滤的表格。

过滤表格

如何使用 JavaScript 在表格中搜索特定数据。

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

آزماش کنید

ایجاد جدول قابل فیلتر کردن

مرحله اول - اضافه کردن 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>

مرحله دوم - اضافه کردن 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");
  // همه ردیف‌های جدول را مرور کرده و آن‌هایی که با جستجوی پوششی‌نخواهند همخوانی ندارند، مخفی کنید
  برای (i = 0; i < tr.length; i++) {
    td = tr[i].getElementsByTagName("td")[0];
    اگر td {
      txtValue = td.textContent || td.innerText;
      اگر 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] کو تبدیل کریں

بند کردنی والا فہرست

مربوط پیجکیس میں چطور عمل کریں: فہرست کو فیلتر یا تلاش کریں