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

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

لیست را فیلتر کنید

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

آزمایش کنید

لیست جستجو ایجاد کنید

مرحله اول - اضافه کردن HTML:

<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Search for names..">
<ul id="myUL">
  <li><a href="#">Adele</a></li>
  <li><a href="#">Agnes</a></li>
  <li><a href="#">Billy</a></li>
  <li><a href="#">Bob</a></li>
  <li><a href="#">Calvin</a></li>
  <li><a href="#">Christina</a></li>
  <li><a href="#">Cindy</a></li>
</ul>

توجه داشته باشید:در این نمایش، ما از href="#" استفاده می‌کنیم، زیرا ما صفحه‌ای برای لینک دادن نداریم. در کاربرد واقعی، این باید URL واقعی یک صفحه خاص باشد.

مرحله دوم - اضافه کردن 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; /* فاصله‌ای اضافه کنید زیر فیلد ورودی */
}
#myUL {
  /* حذف سبک لیست پیش‌فرض */
  list-style-type: none;
  padding: 0;
  margin: 0;
}
#myUL li a {
  border: 1px solid #ddd; /* برای همه لینک‌ها حاشیه اضافه کنید */
  margin-top: -1px; /* از حاشیه‌های دوطرفه جلوگیری کنید */
  background-color: #f6f6f6; /* رنگ پس‌زمینه خاکستری */
  padding: 12px; /* مقدار اندازه‌گیری داخلی را اضافه کنید */
  text-decoration: none; /* خط زیر پیش‌فرض را حذف کنید */
  font-size: 18px; /* اندازه فونت را افزایش دهید */
  color: black; /* رنگ متن را سیاه کنید */
  display: block; /* آن را به عنصر مستطیل تبدیل کنید تا کل لیست را پر کند */
}
#myUL li a:hover:not(.header) {
  background-color: #eee; /* برای همه لینک‌ها (به جز عنوان) تأثیر قرار دهید */
}

مرحله سوم - اضافه کردن JavaScript:

<script>
function myFunction() {
  // متغیرها را اعلام کنید
  var input, filter, ul, li, a, i, txtValue;
  input = document.getElementById('myInput');
  filter = input.value.toUpperCase();
  ul = document.getElementById("myUL");
  li = ul.getElementsByTagName('li');
  // همه عناصر لیست را بررسی کنید و آنهایی که با جستجوی شما همخوانی ندارند را مخفی کنید
  for (i = 0; i < li.length; i++) {
    a = li[i].getElementsByTagName("a")[0];
    txtValue = a.textContent || a.innerText;
    if (txtValue.toUpperCase().indexOf(filter) > -1) {
      li[i].style.display = "";
    } else {
      li[i].style.display = "none";
    }
  }
}
</script>

آزمایش کنید

توضیح:برای جستجوی حساس به حروف بزرگ، toUpperCase() را حذف کنید.

صفحات مرتبط

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