JS实现搜索匹配功能

Posted wrongcode

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS实现搜索匹配功能相关的知识,希望对你有一定的参考价值。

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>JS实现搜索匹配功能</title>
<script src="https://libs.baidu.com/jquery/1.11.3/jquery.min.js"></script>
<style>
div,li,ul 
    margin:0;
    padding:0;

ul li 
    list-style:none;

.basic-grey 
    width:600px;
    margin:5% 10%;

.basic-grey .Companies 
    position:relative;

.basic-grey .Companies ul 
    position:relative;
    height:210px;
    width:100%;
    overflow-y:auto;
    border:1px solid #DDD;
    display:none;

.basic-grey .Companies ul li 
    padding:3px 12px;

.basic-grey .Companies ul li:hover 
    background-color:#bebebe;
    cursor:pointer;

.basic-grey .Companies ul li.top 
    position:absolute;
    top:0;

</style>
</head>
<body>
<link rel="stylesheet" type="text/css" href="http://www.jq22.com/jquery/bootstrap-3.3.4.css">
<div class="g-container"> 
    <form action="" class="basic-grey">
        <div class="form-group">
            <label for="lastname" class="control-label">
            公司选择:
        </label>
            <div class="Companies">
                <input class="form-control" type="text" placeholder="请选择" id="js-groupId">
                <input type="hidden" id="groupId">
                <ul id="groupid">
                    <li data-id="827"><a href="javascript:void(0)">厦门集众筹智科技有限公司</a></li>
                    <li data-id="826"><a href="javascript:void(0)">苏州高新区文体发展有限公司</a></li>
                    <li data-id="825"><a href="javascript:void(0)">美罗城test</a></li>
                    <li data-id="824"><a href="javascript:void(0)">深圳市高收益科技开发有限公司</a></li>
                    <li data-id="823"><a href="javascript:void(0)">深圳市蜗爱生活科技开发有限公司</a></li>
                    <li data-id="815"><a href="javascript:void(0)">深圳市宇恒乐便利店管理有限公司</a></li>
                    <li data-id="814"><a href="javascript:void(0)">广东胜佳超市有限公司</a></li>
                    <li data-id="813"><a href="javascript:void(0)">顺义李先生说</a></li>
                    <li data-id="812"><a href="javascript:void(0)">十足集团股份有限公司</a></li>
                    <li data-id="811"><a href="javascript:void(0)">宏图三胞高科技术有限公司</a></li>
                    <li data-id="810"><a href="javascript:void(0)">九州连锁超市公司</a></li>
                    <li data-id="809"><a href="javascript:void(0)">李先生</a></li>
                    <li data-id="808"><a href="javascript:void(0)">李先生牛肉面快餐厅</a></li>
                    <li data-id="807"><a href="javascript:void(0)">李先生牛肉面快餐厅</a></li>
                    <li data-id="806"><a href="javascript:void(0)">美宜佳便利店有限公司</a></li>
                    <li data-id="805"><a href="javascript:void(0)">上海一嗨汽车租赁有限公司</a></li>
                    <li data-id="804"><a href="javascript:void(0)">龙湖商业地产(重庆区)</a></li>
                    <li data-id="803"><a href="javascript:void(0)">阜阳华联集团股份有限公司</a></li>
                    <li data-id="802"><a href="javascript:void(0)">百万庄园</a></li>
                    <li data-id="801"><a href="javascript:void(0)">百万庄园</a></li>
                    <li data-id="800"><a href="javascript:void(0)">上海恭胜酒店管理有限公司</a></li>
                    <li data-id="799"><a href="javascript:void(0)">北京好伦哥餐饮有限公司</a></li>
                    <li data-id="798"><a href="javascript:void(0)">富驿酒店集团有限公司</a></li>
                </ul>
            </div>
        </div>
    </form>

</div>

<script>
jQuery.expr[:].Contains = function(a, i, m) 
    return (a.textContent || a.innerText || "").toUpperCase().indexOf(m[3].toUpperCase()) >= 0;
;

function filterList(list) 
    $(#js-groupId).bind(input propertychange, function() 
        var filter = $(this).val();
        if (filter) 
            $matches = $(list).find(a:Contains( + filter + )).parent();
            $(li, list).not($matches).slideUp();
            $matches.slideDown();
         else 
            $(list).find("li").slideDown();
        
    );

$(function() 
    filterList($("#groupid"));
    $(#js-groupId).bind(focus, function() 
        $(#groupid).slideDown();
    ).bind(blur, function() 
        $(#groupid).slideUp();
    )
    $(#groupid).on(click, li, function() 
        $(#js-groupId).val($(this).text())
        $(#groupId).val($(this).data(id))
        $(#groupid).slideUp()
    );
)
</script>

</body>
</html>

 

以上是关于JS实现搜索匹配功能的主要内容,如果未能解决你的问题,请参考以下文章

Elasticsearch 前缀搜索、通配符搜索、正则搜索、不匹配搜索

EasyUI combobox下拉列表实现搜索过滤(模糊匹配)

模糊匹配仿百度自动下拉提示

vue.js + element中el-select实现拼音匹配,分词缩写多音字匹配能力

js匹配搜索与数组

使用fcbkcomplete实现PHP标签智能匹配功能