Hur man skapar: Sökmeny

Lär dig hur man använder JavaScript för att skapa en sökmeny för att filtrera länkar.

Sök/Filtrera meny

Hur man söker länkar i navigationsmenyn:

Sidor innehåll

Skriv in specifik kategori/länk i sökfältet för att "filtrera" sökalternativen.

Några texter...Några texter...Några texter...Några texter...Några texter...Några texter...Några texter...Några texter...

Några andra texter...Några texter...Några texter...Några texter...Några texter...Några texter...Några texter...Några texter...

Några texter...

亲自试一试

Skapa en sökmeny

Steg 1 - Lägg till HTML:

<input type="text" id="mySearch" onkeyup="myFunction()" placeholder="Sök.." title="Skriv in en kategori">
<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。

第二步 - 添加 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;
}

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

相关页面

教程:如何过滤表格

教程:Hur man filterar listor