列表视图搜索列表,使用 jQuery 过滤关键词搜索?

jqueryweb developmentobject oriented programming更新于 2025/7/19 20:52:17

假设我们的输入类型如下,用户将在其中搜索"减号"

<input type="text" class="txtInput" id="searchTheKey" placeholder="输入要搜索的关键词.....>

现在,使用 hide() 和 show() 仅显示相关搜索并隐藏其余内容。例如,输入"Ja"时,相关关键词(如"Java"和"JavaScript")应该可见,因为它们以"Ja"开头。

示例

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initialscale=1.0">
<title>Document</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
</head>
<body>
<label>
Enter the keyword..
<input type="text" class="txtInput" id="searchTheKey" placeholder="Enter the keywords to search.....">
</label>
<ul id="matchKey">
<li id="subjectName">JavaScript</li>
<li id="teacherName"><a href="#">John Smith</a></li>
<li id="subjectName">Java</li>
<li id="teacherName"><a href="#">David Miller</a</li>
<li id="subjectName">MongoDB</li>
<li id="teacherName"><a href="#">Carol Taylor</a></li>
</ul>
<script>
   $("#searchTheKey").on('keyup', function(){
      var value = $(this).val().toLowerCase();
      $("#matchKey li").each(function () {
         if ($(this).text().toLowerCase().search(value) > -1) {
            $(this).show();
            $(this).prev('.subjectName').last().show();
         } else {
            $(this).hide();
         }
      });
   })
</script>
</body>
</html>

要运行上述程序,请将文件名保存为"anyName.html(index.html)",然后右键单击该文件。在 VS Code 编辑器中选择"使用实时服务器打开"选项。

输出

将产生以下输出 −

现在,我输入唯一的 Java 代码并获取搜索结果。屏幕截图如下 −

查看上面的屏幕截图,剩余的项目列表已隐藏。


相关文章