jQuery插件fastLiveFilter实现实时输入过滤功能

作者:阿沐

时间:2026-10-29

浏览:562

本文介绍如何使用jquery.fastLiveFilter.js插件实现类似搜索框的实时输入过滤效果。该插件能根据用户输入的字符智能匹配并自动列出符合内容,提升操作体验。文章提供了完整的HTML与JavaScript代码示例及运行效果截图,适合需要快速实现前端过滤功能的开发者参考。

文章目录

jQuery插件fastLiveFilter实时过滤功能介绍

本文详细介绍基于jquery.fastLiveFilter.js插件实现输入内容自动过滤的具体方法,供开发者参考借鉴。

该效果依赖于jquery.fastLiveFilter.js插件,功能类似于常见的搜索框输入提示。它能够实现匹配项目的自动过滤:当用户输入字符时,系统会智能匹配相关内容并自动列出,从而优化人机交互体验。如果您对jquery.fastLiveFilter.js插件的具体用法感兴趣,本文提供的示例是一个很好的切入点。

实际运行效果如下图所示:

jQuery插件fastLiveFilter实时过滤功能介绍

具体实现代码如下:


<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>jQuery过滤器插件fastLiveFilter</title>
<script src="jquery-1.6.2.min.js"></script>
<script>
//jquery.fastLiveFilter.js
jQuery.fn.fastLiveFilter = function(list, options) {
 options = options || {};
 list = jQuery(list);
 var input = this;
 var lastFilter = '';
 var timeout = options.timeout || 0;
 var callback = options.callback || function() {};
 var keyTimeout;
 var lis = list.children();
 var len = lis.length;
 var oldDisplay = len > 0 ? lis[0].style.display : "block";
 callback(len);
 input.change(function() {
  var filter = input.val().toLowerCase();
  var li, innerText;
  var numShown = 0;
  for (var i = 0; i < len; i++) {
   li = lis[i];
   innerText = !options.selector ? 
    (li.textContent || li.innerText || "") : 
    $(li).find(options.selector).text();
   if (innerText.toLowerCase().indexOf(filter) >= 0) {
    if (li.style.display == "none") {
     li.style.display = oldDisplay;
    }
    numShown++;
   } else {
    if (li.style.display != "none") {
     li.style.display = "none";
    }
   }
  }
  callback(numShown);
  return false;
 }).keydown(function() {
  clearTimeout(keyTimeout);
  keyTimeout = setTimeout(function() {
   if( input.val() === lastFilter ) return;
   lastFilter = input.val();
   input.change();
  }, timeout);
 });
 return this;
}
</script>
<script>
 $(function() {
 $('#search_input').fastLiveFilter('#search_list');
 });
</script>
<style type="text/css">
body { margin: 0px; background-color: #F6F6F6; }
.jq22{ width: 600px; height: 500px; margin-left: auto; margin-right: auto; background-color: #FFFFFF; padding: 10px; }
</style>
</head>
<body>
<div class="jq22">
<input id="search_input" placeholder="输入文字开始筛选">
<ul id="search_list">
 <li>One</li>
 <li>Two</li>
 <li>Three</li>
 <li>One</li>
 <li>awo</li>
 <li>bhree</li>
 <li>cne</li>
 <li>dwo</li>
 <li>ehree</li>
 <li>fne</li>
 <li>gwo</li>
 <li>hhree</li>
 <li>ihree</li>
</ul>
</div>
</body>
</html>

希望本文提供的解决方案能对您的jQuery编程工作有所帮助。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章