Задать вопрос
@FrelFrloich

Как правильно написать поиск по словам или группе слов в строке?

Прочитав по утру, принял критику ниже и согласен, проблема не понятна и сам вопрос, мягко скажем был неадекватен.
Моя проблема заключается, я хочу сделать поиск по словам, вне зависимости от их положения в строке.

Пример строк :
1. Далеко-далеко за словесными горами
2. Далеко-далеко за словесными лесам


Хотелось бы при вводе далеко горами выдавало первую строку, что во втором примере приведённого ниже осуществляется, но я не могу допетрить, как сделать при непрерывном вводе отображение содержащую ведёный текст строку "как в первом примере, хотя работает он не совсем корректно" . В данный момент прыгает, из за того что я ввожу в массив слово до пробела и потом сравниваю в фильтре, если этот массив не 0 то отображаем, в общем как избежать скачка при добавлении в массив и фильтрации в голову не лезет.

Первый вариант
https://jsfiddle.net/mzstrxdf

Второй вариант (как пример)
https://jsfiddle.net/67qwbrnf/1/
  • Вопрос задан
  • 111 просмотров
Подписаться 1 Средний 2 комментария
Решения вопроса 1
@alekcena
Нелинейный наставник
Если как я понял(Скрытие и показ элементов которые уже есть на странице*)
Если ничего не нашли можно как вы используя флаг true/false.
let searchResult = document.querySelectorAll('.item-search'); // Все элементы
document.querySelector('.input-search').addEventListener('input',function(){
//обработчик на событие ввода
let inputVal = this.value;
	if(!inputVal){
  // Если пусто показываем всё.
  }
	searchResult.forEach(item=>{
//Приводим к нижнему регистру и ищем подстроку
  	if(item.innerHTML.toLowerCase().indexOf(inputVal.toLowerCase()) != -1){
  		item.style.display = "block";
    
  	}else{
    	item.style.display = "none";
    }
  })
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы