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

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

Поиск/фильтрация меню

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

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

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

Некоторый текст...Некоторый текст...Некоторый текст...Некоторый текст...Некоторый текст...Некоторый текст...Некоторый текст...Некоторый текст...

Некоторый другой текст...Некоторый текст...Некоторый текст...Некоторый текст...Некоторый текст...Некоторый текст...Некоторый текст...Некоторый текст...

Некоторый текст...

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

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

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

<input type="text" id="mySearch" onkeyup="myFunction()" placeholder="Search.." title="Type in a category">
<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()

Соответствующие страницы

Учебное пособие:Как фильтровать таблицы

Учебное пособие:Как фильтровать список