Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript键入时缩小项目列表_Javascript_Jquery_Forms_Plugins_Autocomplete - Fatal编程技术网

使用javascript键入时缩小项目列表

使用javascript键入时缩小项目列表,javascript,jquery,forms,plugins,autocomplete,Javascript,Jquery,Forms,Plugins,Autocomplete,我试图找到一个插件或一个可靠的方法来缩小用户输入的项目列表 从本质上讲,将有一个列表,其中始终包含产品名称,供用户滚动浏览。底部是一个表单,您可以在其中键入产品名称。键入时,列表将缩小 我一直在试图找到一种方法来适应类似jQueryUI的自动完成这样的工作方式,但遇到了一些麻烦 有人以前创造过类似的东西或有什么想法吗?下面是一个可以工作的方法的快速示例: HTML: 这是一个简单的方法,可能需要一些调整,但它已经接近你需要的了。插件怎么样?我通常更喜欢re.test($(this.text())

我试图找到一个插件或一个可靠的方法来缩小用户输入的项目列表

从本质上讲,将有一个列表,其中始终包含产品名称,供用户滚动浏览。底部是一个表单,您可以在其中键入产品名称。键入时,列表将缩小

我一直在试图找到一种方法来适应类似jQueryUI的自动完成这样的工作方式,但遇到了一些麻烦


有人以前创造过类似的东西或有什么想法吗?

下面是一个可以工作的方法的快速示例:

HTML:


这是一个简单的方法,可能需要一些调整,但它已经接近你需要的了。

插件怎么样?

我通常更喜欢
re.test($(this.text())
因为它返回一个简单的布尔值谢谢,这给了我一些可以跳下去的东西,这是一个很好的观点,Már。我将答案改为使用re.test。上面的代码有一个很小但很重要的错误。javascript的第一行应该是:var$products=$(“#products li”);-如果没有li$(this).text(),则过滤器中是一个字符串,所有li元素都连接在一起。谢谢,Paolo。这就是我在不测试代码的情况下编写代码的结果。:)这是一个很好的静态列表插件,非常适合这个任务。把我认为要花很长时间的事情变成了10分钟的折磨。谢谢
<ul id="products">
    <li>Apple</li>
    <li>Banana</li>
    <li>Mango</li>
</ul>
<input id="filter" />
var $products = $('#products li');
$('#filter').keyup(function() {
    var re = new RegExp($(this).val(), "i"); // "i" means it's case-insensitive
    $products.show().filter(function() {
        return !re.test($(this).text());
    }).hide();
});