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

آموزش اینکه چگونه از 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');
  // همه عناصر لیست را جستجو کرده و آنهایی که با جستجوی شما جور نیستند را مخفی کنید
  برای (i = 0; i < li.length; i++) {
    a = li[i].getElementsByTagName("a")[0];
    txtValue = a.textContent || a.innerText;
    اگر txtValue.toUpperCase().indexOf(filter) > -1 {
      li[i].style.display = "";
    } else {
      li[i].style.display = "none";
    }
  }
}
</script>

خودتان امتحان کنید

تذکر:اگر آپ کسی بولی میخواهید جستجو کنید، لطفاً toUpperCase() را حذف کنید。

صفحات مرتبط

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