一个搜索框的小demo

一、实时按照输入的搜索值显示与其匹配的内容,隐藏其它内容

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="textSelect.aspx.cs" Inherits="textSelect" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>搜索框测试页面</title>
    <script src="jquery/jquery-2.1.0.min.js"></script>
    <script src="js/jquery.scrollto.js"></script>
    <style type="text/css">
        .search
        {
            position: relative;
            margin-left:24%;
            margin-top:10%;
        }
        #auto_div
        {
            display: none;
             300px;
            border: 1px #74c0f9 solid;
            background: #FFF;
            position: absolute;
            top: 24px;
            left: 0;
            color: #323232;
        }
        .list{
            display:block;
            font-size: 39px;
            margin-top: 167px;
        }
        .search_text{
                 66%;
                height: 93px;
                font-size: 34px;
                border: 1px solid;
        }
        .all{
                position: absolute;
                margin-top: 56px;
        }
    </style>
    
</head>
<body>
    <div class="search">
        <input type="text" id="search_text" class="search_text" placeholder="查询人员" />
        <div id="listall" class="all">
            <div id="none" style="display:none;font-size: 39px;">查无此人</div>
            <div class="list">
                汪宝蛋
            </div>
            <div class="list">
                禽兽宝宝蛋
            </div>
            <div class="list">
                小明
            </div>
            <div class="list">
                小黑
            </div>
            <div class="list">
                李大头
            </div>
            <div class="list">
                宝宝蛋
            </div>
            <div class="list">
                隔壁老王
            </div>
            <div class="list">
               缺心眼
            </div>
            <div class="list">
                gg
            </div>
            <div class="list">
                xs
            </div>
            <div class="list">
                sb
            </div>
            <div class="list">
               www
            </div>
        </div>
    </div>
    <script type="text/javascript">
       
        $("#search_text").bind('input propertychange',function(){   //实时监听输入框的改动
            $("#none").css("display", "none");
            var searchText = $(this).val();//获取输入的搜索内容 
            var $searchLi = "";//预备对象,用于存储匹配出的li
            if (searchText != "") {
                $("#listall").children(".list").each(function () {  //遍历列表
                    console.log(this);
                    console.log($(this).html())
                    console.log(searchText.replace(/"/g, ""))    //去除searchText的双引号
                    if ($.trim($(this).html()) == searchText.replace(/"/g, ""))  //去除$(this).html()空格,判断这个值是否等于输入的值
                    {
                        $(this).css("display", "block");
                        $searchLi += searchText.replace(/"/g, "")
                    }
                    else {
                        $(this).css("display", "none");
                    }
                })
                //判断搜索内容是否有效,若无效,输出not find
                if ($searchLi.length <= 0) {
                    $("#listall").children(".list").css("display", "none");
                    $("#none").css("display", "block");
                }
            }
            else {
                $("#listall").children(".list").css("display", "block");
                $("#none").css("display", "none");
            }
        })
    </script>
</body>
</html>

二、实现搜索后定位到与其匹配的内容位置

只需要把下面这段js替代上面的js就可以啦

        $("#search_text").blur( function () {   //实时监听输入框的改动
            $("#none").css("display", "none");
            var searchText = $(this).val();//获取输入的搜索内容 
            var $searchLi = "";//预备对象,用于存储匹配出的li
            if (searchText != "") {
                $("#listall").children(".list").each(function () {  //遍历列表
                    console.log(searchText.replace(/"/g, ""))    //去除searchText的双引号
                    if ($.trim($(this).html()) == searchText.replace(/"/g, ""))  //去除$(this).html()空格,判断这个值是否等于输入的值
                    {
                        $(document).scrollTop($(this).offset().top)
                        $searchLi += searchText.replace(/"/g, "")
                    }
                    else {
                        
                    }
                })
                //判断搜索内容是否有效,若无效,输出not find
                if ($searchLi.length <= 0) {
                    $("#listall").children(".list").css("display", "none");
                    $("#none").css("display", "block");
                }
            }
            else {
                $("#listall").children(".list").css("display", "block");
                $("#none").css("display", "none");
            }
        })
原文地址:https://www.cnblogs.com/wangxiaoyan/p/9565449.html