如何创建:搜索菜单

学习如何使用 JavaScript 创建搜索菜单来过滤链接。

搜索/过滤菜单

如何在导航菜单中搜索链接:

Page Content

请在搜索栏中输入特定类别/链接以“过滤”搜索选项。

Some text..Some text..Some text..Some text..Some text..Some text..Some text..Some text..

Some other text..Some text..Some text..Some text..Some text..Some text..Some text..Some text..

Some text..

직접 시도해 보세요

创建搜索菜单

第一步 - 添加 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()

관련 페이지

교육:테이블을 필터링하는 방법

교육:리스트를 필터링하는 방법