Wie man erstellt: Suchleiste

Lernen Sie, wie man mit JavaScript eine Suchleiste erstellt, um Links zu filtern.

Suchen/Filtern der Menü

Wie man in der Navigationsleiste Links sucht:

Seiteninhalt

Geben Sie im Suchfeld eine bestimmte Kategorie/Verknüpfung ein, um die Suchoptionen zu "filtern".

Einige Texte...Einige Texte...Einige Texte...Einige Texte...Einige Texte...Einige Texte...Einige Texte...Einige Texte...

Einige andere Texte...Einige Texte...Einige Texte...Einige Texte...Einige Texte...Einige Texte...Einige Texte...Einige Texte...

Einige Texte...

亲自试一试

Erstellen Sie eine Suchleiste

Schritt 1 - Fügen Sie HTML hinzu:

<input type="text" id="mySearch" onkeyup="myFunction()" placeholder="Suche.." title="Geben Sie eine Kategorie ein">
<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()

相关页面

教程:如何过滤表格

教程:How to filter list