چگونه جدول را فیلتر/جستجو کنیم

آموزش نحوه استفاده از JavaScript برای ایجاد جدول‌های قابل فیلتر کردن.

فیلتر کردن جدول

چگونه از JavaScript برای جستجوی داده‌های خاص در جدول استفاده کنیم.

نام کشور
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

به طور مستقیم امتحان کنید

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

مرحله اول - اضافه كردن 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");
  // همه ردیف‌های جدول را جستجو کرده و آن‌هایی که با جستجوی شما مطابقت ندارند را پنهان کنید
  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()

توجه:اگر بخواهید به جای 'نام' (شاخص 0) به دنبال کشور (شاخص 1) بگردید، لطفاً tr[i].getElementsByTagName('td')[0] به [1] تغییر دهید.

صفحات مرتبط

آموزش‌ها:چگونه انجام دهیم: فیلتر کردن/جستجوی لیست