ЛУЧШИЙ САЙТ ДЛЯ ВЕБ-РАЗРАБОТЧИКОВ
Как сделать? Готовые сниппеты для сайта

Как сделать - Меню поиска


Узнайте, как создать меню поиска для фильтрации ссылок с помощью JavaScript.


Поиск/Фильтр меню

Как искать ссылки в меню навигации:

Содержание страницы

Начните вводить определенную категорию/ссылку в строке поиска, чтобы "отфильтровать" параметры поиска.

Какой-то текст..Какой-то текст..Какой-то текст..Какой-то текст..Какой-то текст..Какой-то текст..Какой-то текст..Какой-то текст..

Some other text..Какой-то текст..Какой-то текст..Какой-то текст..Какой-то текст..Какой-то текст..Какой-то текст..Какой-то текст..

Какой-то текст..

Попробуйте сами »


Создать меню поиска

Шаг 1) Добавить HTML:

Пример

<input type="text" id="mySearch" onkeyup="myFunction()" placeholder="Поиск.." title="Введите категорию">

<ul id="myMenu">
  <li><a href="#">HTML</a></li>
  <li><a href="#">CSS</a></li>
  <li><a href="#">JavaScript</a></li>
  <li><a href="#">PHP</a></li>
  <li><a href="#">Python</a></li>
  <li><a href="#">jQuery</a></li>
  <li><a href="#">SQL</a></li>
  <li><a href="#">Bootstrap</a></li>
  <li><a href="#">Node.js</a></li>
</ul>

Примечание: Мы используем href="#" в этой демонстрации, поскольку у нас нет страницы, на которую можно было бы сделать ссылку. В реальной жизни это должен быть реальный URL-адрес конкретной страницы.


Шаг 2) Добавить CSS:

Стиль окна поиска и меню навигации:

Пример

/* Стиль окна поиска */
#mySearch {
  width: 100%;
  font-size: 18px;
  padding: 11px;
  border: 1px solid #ddd;
}

/* Стиль меню навигации */
#myMenu {
  list-style-type: none;
  padding: 0;
  margin: 0;
}

/* Стиль навигационных ссылок */
#myMenu li a {
  padding: 12px;
  text-decoration: none;
  color: black;
  display: block
}

#myMenu li a:hover {
  background-color: #eee;
}

Шаг 3) Добавить JavaScript:

Пример

<script>
function myFunction() {
  // Объявить переменные
  var input, filter, ul, li, a, i;
  input = document.getElementById("mySearch");
  filter = input.value.toUpperCase();
  ul = document.getElementById("myMenu");
  li = ul.getElementsByTagName("li");

  // Прокрутите все элементы списка и скройте те, которые не соответствуют поисковому запросу
  for (i = 0; i < li.length; i++) {
    a = li[i].getElementsByTagName("a")[0];
    if (a.innerHTML.toUpperCase().indexOf(filter) > -1) {
      li[i].style.display = "";
    } else {
      li[i].style.display = "none";
    }
  }
}
</script>
Попробуйте сами »

Совет: Удалите toUpperCase() если вы хотите выполнять поиск с учетом регистра.

Совет: Также посмотрите Как сделать - Фильтр таблицы.

Совет: Ещё посмотрите Как сделать - Фильтр списка.