Как сделать живой поиск с помощью javascript

RedDeveloper
12.04.2023 12:41
Как сделать живой поиск с помощью javascript

Как сделать живой поиск с помощью javascript

Если у вас есть страница, которая содержит много информации, лучше всего позволить пользователям искать то, что они, возможно, ищут.

Я не говорю о поиске в базах данных или даже о поиске данных JSON, я говорю о поиске буквального текста на одной визуализированной веб-странице.

Допустим, у нас есть список данных, как показано ниже:

<ul class=”list”>
 <li class=”data-list”>How to learn HTML & CSS</li>
 <li class=”data-list”>How to learn JavaScript</li>
 <li class=”data-list”>How to became Freelancer</li>
 <li class=”data-list”>How to became Web Designer</li>
 <li class=”data-list”>How to start Gaming Channel</li>
 <li class=”data-list”>How to start YouTube Channel</li>
</ul>

Представьте, что на этой странице есть много списков данных.

Давайте добавим поисковый ввод с событием, которое происходит при взаимодействии с ним:

<input type=”search” placeholder=”search…“ id=”src” onkeyup=”searching()”>

И вот JavaScript, который делает все!

function searching(){
 let input = document.getElementById("src").value
 input=input.toLowerCase();
 let v = document.getElementsByClassName("data-list");
 for (w = 0; w < v.length; w++) {
  if (!v[w].innerHTML.toLowerCase().includes(input)) {
   v[w].style.display="none";
  }else{
   v[w].style.display="block";
  }
 }
}

Вы, вероятно, могли бы просмотреть строку за строкой и выяснить, что он делает.

Когда срабатывает событие lookup, выполняется поиск по всем данным списка, определяя, есть ли текст в карточке или нет.

Если текст в списке не соответствует поисковому запросу, то добавляется атрибут display="none", в противном случае, если соответствует, добавляется атрибут display="block".

Чтобы убедиться, что наш JavaScript не работает слишком долго (что означает, что он будет замедлять работу страницы), вы можете добавить setInterval, не стесняйтесь редактировать его самостоятельно.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?

20.08.2023 18:21

Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в 2023-2024 годах? Или это полная лажа?".

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией

20.08.2023 17:46

В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox

19.08.2023 18:39

Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в частности, магию поплавков и гибкость flexbox.

Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest

19.08.2023 17:22

В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для чтения благодаря своей простоте. Кроме того, мы всегда хотим проверить самые последние возможности в наших проектах!

Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️

18.08.2023 20:33

Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий их языку и культуре.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL

14.08.2023 14:49

Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип предназначен для представления неделимого значения.