كيفية فرز/بحث الجدول

تعلم كيفية استخدام 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

جرب بنفسك

إنشاء جدول قابلة للتصفية

الخطوة الأولى - إضافة 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().

نصيحة:إذا كنت تريد البحث عن دولة (الاسم 1) وليس "الاسم" (الاسم 0)، فيجب tr[i].getElementsByTagName('td')[0] التحويل إلى [1]

الصفحات ذات الصلة

دليل:كيفية التصفية/البحث في القائمة