模糊查询

EF模糊查询     做项目时,遇到了一个棘手的问题:查询某日期的数据,只是日期,但是数据库里是varchar类型的既包含日期又包含时间的字段,所以在这里是现将这个日期转换成了等同于数据库字段格式的字符串类型,然后使用了模糊查询startWith。所以现在整理一下Linq中的模糊查询。普通模糊查询以某字符开头的模糊查询查询日期为2018-03-06 **:**:**的字段 List<t_plan> ... 阅读详情

模糊搜索功能在工作中应用广泛,并且很实用,自己写了一个方法,以后用到的时候可以直接拿来用了!

实现的搜索功能:

1. 可以匹配输入的字符串找出列表中匹配的项,列表框的高度跟随搜索出的列表项的多少改变

2. 可以点击某一项进行选中列表项

3. 可以按下上、下、回车键来控制列表项

4. 按下回车键时则会选中列表项

5. 点击文本框中的下拉键头时会切换下拉框的显示/隐藏

6. 点击文本框外部时自动隐藏下拉框

 

先来预览一下效果吧! 

列表中包含的列表项有: 

北京、上海、杭州、安庆、大兴安岭、安阳、广州、贵阳、哈尔滨、合肥、邯郸、呼伦贝尔、淮南、黄山、济南、济宁、嘉兴、南昌、南通、南宁、南京
在预览时需要输入匹配以上项目的文字,以便更好的预览效果
 

点击链接预览模糊搜索功能

http://sandbox.runjs.cn/show/kwxlptbl

 

 

 下面就开始实现功能啦!

一、首先,引入jquery文件

<script type="text/javascript" src="js/jquery/jquery-3.2.1.min.js"></script>

二、html部分 

复制代码
<div id="container">
    <h2>模糊搜索</h2>
    <div id="cityContainer" class="selectContainer">
        <label>城市:</label>
        <input type="text" placeholder="请输入城市名称" list="cityList" class="selectInput" name="cityName" id="cityName" value="" onfocus="fuzzySearch.call(this)" />
        <div class="picture_click dropDowns" style=""></div>
        <div id="cityList" class="selectList">
            <div id="001">北京</div>
            <div id="002">上海</div>
            <div id="003">杭州</div>
            <div id="004">安庆</div>
            <div id="005">大兴安岭</div>
            <div id="006">安阳</div>
            <div id="007">广州</div>
            <div id="008">贵阳</div>
            <div id="009">哈尔滨</div>
            <div id="010">合肥</div>
            <div id="011">邯郸</div>
            <div id="012">呼伦贝尔</div>
            <div id="013">淮南</div>
            <div id="014">黄山</div>
            <div id="015">济南</div>
            <div id="016">济宁</div>
            <div id="017">嘉兴</div>
            <div id="018">南昌</div>
            <div id="019">南通</div>
            <div id="020">南宁</div>
            <div id="021">南京</div>
        </div>
    </div>
</div> 
复制代码

三、编写样式 

复制代码
<style type="text/css">
    * {
        padding: 0;
        margin: 0;
    }
    h2 {
        margin-bottom: 20px;
    }
    #container {
        width: 500px;
        text-align: center;
        margin: 0 auto;
        font-family: "微软雅黑";
        margin-top: 50px;
    }
    .selectContainer {
        position: relative;
    }
    .selectInput {
        width: 200px;
        height: 25px;
        border-style: none;
        border: 1px solid #999;
        border-radius: 3px;
        padding: 0 3px;
    }
    .picture_click {
        background: url(img/select-default.png) no-repeat; 
        opacity: 1; 
        width: 15px; 
        height: 8px;
        position: absolute;
        top: 10px;
        right: 125px;
    }
    .picture_click:hover {
        background-image: url(img/select-hover.png);
    }
    .selectList {
        width: 206px;
        height: 212px;
        overflow-y: scroll;
        text-align: left;
        margin: 0 172px;
        border: 1px solid #999;
        display: none;
        position: relative;
    }
    .selectList div {
        cursor: pointer;
    }
</style> 
复制代码

此时的页面:

四、使用js、jquery实现模糊搜索功能

复制代码
<script type="text/javascript">
    //初始化下拉框
    initSearchInput();

    function fuzzySearch(e) {
        var that = this;
        //获取列表的ID
        var listId = $(this).attr("list");
        //列表
        var list = $('#' + listId + ' div');
        //列表项数组  包列表项的id、内容、元素
        var listArr = [];
        //遍历列表,将列表信息存入listArr中
        $.each(list, function(index, item){
            var obj = {'eleId': item.getAttribute('id'), 'eleName': item.innerHTML, 'ele': item};
            listArr.push(obj);
        })
        
        //current用来记录当前元素的索引值
        var current = 0;
        //showList为列表中和所输入的字符串匹配的项
        var showList = [];
        //为文本框绑定键盘引起事件
        $(this).keyup(function(e){
            //如果输入空格自动删除
            this.value=this.value.replace(' ','');
            //列表框显示
            $('#' + listId).show();
            if(e.keyCode == 38) {
                //up
                console.log('up');
                current --;
                if(current <= 0) {
                    current = 0;
                }
                console.log(current);
            }else if(e.keyCode == 40) {
                //down
                console.log('down');
                current ++;
                if(current >= showList.length) {
                    current = showList.length -1;
                }
                console.log(current);

            }else if(e.keyCode == 13) {
                //enter
                console.log('enter');
                //如果按下回车,将此列表项的内容填充到文本框中
                $(that).val(showList[current].innerHTML);
                //下拉框隐藏
                $('#' + listId).hide();
            }else {
                //other
                console.log('other');
                //文本框中输入的字符串
                var searchVal = $(that).val();
                showList = [];
                //将和所输入的字符串匹配的项存入showList
                //将匹配项显示,不匹配项隐藏
                $.each(listArr, function(index, item){
                    if(item.eleName.indexOf(searchVal) != -1) {
                        item.ele.style.display = "block";
                        showList.push(item.ele);
                    }else {
                        item.ele.style.display = 'none';
                    }
                })
                console.log(showList);
                current = 0;
            }
            //设置当前项的背景色及位置
            $.each(showList, function(index, item){
                if(index == current) {
                    item.style.background = "#eee";
                    $('#' + listId).scrollTop(item.offsetTop);
                }else {
                    item.style.background = "";
                }
            })
            //设置下拉框的高度
            //212为列表框的最大高度
            if(212 > $('#' + listId + ' div').eq(0).height() * showList.length) {
                $('#' + listId).height($('#' + listId + ' div').eq(0).height() * showList.length);
            }else {
                $('#' + listId).height(212);
            }
        })
    }

    function initSearchInput() {
        //给下拉箭头绑定点击事件  点击下拉箭头显示/隐藏对应的列表
        //输入框的类名为selectInput
        //下拉箭头的类名为picture_click、dropDowns
        //下拉列表的类名为selectList
        for(var i = 0; i < $('.picture_click').length; i++) {
             $('.picture_click').eq(i).click(function(){
                 $(this).parent().find('.selectList').toggle();
             })
        }
        //为列表中的每一项绑定鼠标经过事件
        $('.selectList div').mouseenter(function(){
            $(this).css("background", "#eee").siblings().css("background", "");
        });
        //为列表中的每一项绑定单击事件
        $('.selectList div').click(function(){
            //文本框为选中项的值
            $(this).parent().parent().find('.selectInput').val($(this).html());
            //下拉框隐藏
            $(this).parent().hide();
        });        

        //点击下拉框外部的时候使下拉框隐藏
        var dropDowns = document.getElementsByClassName('dropDowns');
        var selectList = document.getElementsByClassName('selectList');
        document.body.onclick = function(e){
            e = e || window.event;
            var target = e.target || e.srcElement;
            for(var i = 0; i < dropDowns.length; i++) {
                if(target != dropDowns[i] && target != selectList[i]){
                    selectList[i].style.display = 'none';
                }
            }
        }
    }

</script>
复制代码

此时的页面

 

需要注意的地方:

1. 使用此方法时,需要给输入框加类名selectInput,给下拉剪头加类名picture_click、dropDowns,给列表框加类名selectList;

2. 输入框需要有list属性,list属性对应的值为列表框的id值

3. 需要给文本框绑定事件,onfocus="fuzzySearch.call(this)",(由于自定义的函数中,this指向的是window,所以需要通过call方法改变this指向,即指向该文本框,以便在方法中使用)

4. 在实现搜索功能的过程中,遇到一点小问题,就是在获取列表项的offersetTop时,获取的是28,找不出原因,最终通过查阅相关资料终于解决,即想要获取子元素的offsetTop,则需要给父元素设置相对定位,才能获取到正确的offsetTop。

 

还能在线调试哦!

http://runjs.cn/code/kwxlptbl

 

如果对您有帮助,记得点赞哦!需要你的支持与鼓励,同时也欢迎您留下宝贵意见!

使用jQuery实现模糊搜索用户功能 然后,我们清空用户列表,并遍历用户列表,判断每个用户的名字是否包含关键字。如果包含关键字,我们就创建一个包含用户名和年龄的HTML代码,并将其添加到用户列表中。首先,我们需要一个用户列表,其中包含了用户的姓名和其他相关信息。通过这个功能,用户可以在一个用户列表中快速查找到符合特定条件的用户。用户只需在输入框中输入关键字,即可实时过滤用户列表,只显示与关键字匹配的用户。当用户输入关键字时,我们将实时过滤用户列表,只显示与关键字匹配的用户。在HTML中,我们可以添加一个文本输入框和一个用于显示用户列表的容器。 阅读详情

相关推荐

jQuery实现模糊搜索功能的方法分析

本文实例讲述了jQuery实现模糊搜索功能的方法。分享给大家供大家参考,具体如下: 功能一:关键字搜索 总结: 1、搜索出的结果,前台先要清空原有表格 $(#tbody).empty; 2、后台返回的json格式字符串 js eval 专成对象 var stus = eval(( + msg + )); 在循环进行字符串拼接到表格上 $(#tbody).html(str); $(#btn).click(function() { var id = $.trim($(#id).val()); var classname = $.trim($(#cla

JQuery select支持模糊搜索

模态框select2下拉框不能搜索,使用模态框,一般都会自动带上一个属性, tabindex=“-1” ,因为这个属性的存在,导致select2的搜索框无法输入,去掉这个属性即可解决。html中tabindex属性可以设置键盘中的TAB键在控件中的移动顺序,即焦点顺序。模态框中的select2下拉框很窄,增加宽度属性。增加js,在页面加载完成时重写select。引入:select2。

阿呆的专栏 1325

js、jquery实现列表模糊搜索功能过程解析

实现的搜索功能: 1. 可以匹配输入的字符串找出列表中匹配的项,列表框的高度跟随搜索出的列表项的多少改变 2. 可以点击某一项进行选中列表项 3. 可以按下上、下、回车键来控制列表项 4. 按下回车键时则会选中列表项 5. 点击文本框中的下拉键头时会切换下拉框的显示/隐藏 6. 点击文本框外部时自动隐藏下拉框 先来预览一下效果吧! 列表中包含的列表项有: 北京、上海、杭州、安庆、大兴安岭、安阳、广州、贵阳、哈尔滨、合肥、邯郸、呼伦贝尔、淮南、黄山、济南、济宁、嘉兴、南昌、南通、南宁、南京 在预览时需要输入匹配以上项目的文字,以便更好的预览效果 具体的代码实现 <html xmlns

jQuery 如何实现 模糊搜索

如何实现 模糊搜索 当我们浏览网页的时候,通常能看到搜索栏,这大大的提高了我们获取数据的目的性。那如何去实现一个简单的模糊搜索 框呢,以下案例获取能给你一点思路。 以下案例,可以实现当按键按下时,自动检索匹配数据 基本css 样式 .row { ​ height: 80px; ​ */\* line-height: 80px; \*/* ​ text-align: left...

weixin_30849403的博客 271

3D Slicer肺部CT病灶体积测量:阈值法实操全流程

在医学影像分析中,病灶体积的精准测量是肿瘤评估、疗效随访和科研统计的重要基础。传统逐层手动勾画不仅耗时,且主观差异大,而基于CT值的阈值分割技术,通过设定灰度区间自动提取目标体素,能够快速生成三维分割结果,具有高效、可重复、边界标准统一的优势,尤其适用于肺部实性结节这类与周围肺实质对比度高的病灶。理解体素与CT值的关系,掌握阈值范围的设定逻辑,并配合连通域分析、边缘修正等工程化操作,即可在3D Slicer中稳定获得可靠的体积数据。本文从技术原理出发,系统梳理了DICOM导入、窗宽窗位调节、阈值选择、三维重

weixin_29050271的博客 251

FreeCAD MCP实战:用AI自然语言驱动CAD建模与自动化

在计算机辅助设计(CAD)领域,参数化建模和自动化脚本是提升设计效率的核心技术。其原理在于通过程序化指令控制三维模型的创建与修改,从而将设计意图转化为精确的几何实体。这种技术价值在于显著降低重复性操作成本,实现快速原型迭代和设计探索。在应用场景上,它尤其适用于需要频繁调整尺寸、生成系列化零件或执行规则化建模任务的工程与产品设计。本文聚焦的FreeCAD MCP项目,正是这一理念的先进实践。它通过集成Model Context Protocol(MCP),构建了一个连接Claude AI与FreeCAD的智能

weixin_26913055的博客 726

jQuery下拉框搜索模糊查询实现

通过上述代码,我们实现了使用jQuery在下拉框中进行模糊查询的功能。用户可以通过输入框输入关键词,实时筛选出符合条件的选项,从而更方便快捷地选择需要的选项。希望本文对你有所帮助,如果有任何问题或疑问,欢迎留言讨论。

牛肉胡辣汤 3088

Mplus实战:三变量随机截距交叉滞后模型(RI-CLPM)语法详解与扩展

本文详细解析了Mplus中三变量随机截距交叉滞后模型(RI-CLPM)的构建原理与语法实现。通过将变量分解为稳定的个体间差异与动态的个体内波动,模型能更纯净地揭示多变量间的纵向交互影响。文章以工作压力、睡眠质量与工作满意度为例,提供了完整的语法模板、关键参数设置(如NOCOV命令、残差相关)及结果解读指南,帮助研究者避开常见误区,稳健分析复杂动态关系。

wdx0123456的博客 927

js、jquery实现列表模糊搜索功能

模糊搜索功能在工作中应用广泛,并且很实用,自己写了一个方法,以后用到的时候可以直接拿来用了! 实现的搜索功能: 1. 可以匹配输入的字符串找出列表中匹配的项,列表框的高度跟随搜索出的列表项的多少改变 2. 可以点击某一项进行选中列表项 3. 可以按下上、下、回车键来控制列表项 4. 按下回车键时则会选中列表项 5. 点击文本框中的下拉键头时会切换下拉框的显示/隐藏 6. 点...

weixin_38167363的博客 349

别再死记硬背公式了!用Multisim仿真软件,5分钟搞懂三极管放大电路的工作原理

本文介绍如何利用Multisim仿真软件快速掌握三极管放大电路的工作原理,避免死记硬背公式。通过动态实验和参数调整,直观理解三极管的工作状态和放大效果,提升学习效率和实践能力。

weixin_30566063的博客 568

三甲医院网络架构与安全建设实战

华为OceanStor] [华为OceanStor][PACS存储双活] [HIS数据库同步]患者隐私 数据脱敏 天清Web防火墙动态脱敏策略。主数据中心 --[OTV专线]-- 备数据中心。实现医疗业务网/卫生专网/互联网三网隔离。核心业务配置(华为CE6865)自动备份配置(每天02:00)安全事件响应(30分钟SLA)漏洞扫描(每周日00:00)实现医疗物联网统一接入管控。五、等保2.0合规关键配置。堡垒机登录(双因素认证)四、医疗物联网安全方案。

有小小的远大抱负 1911

sql语句实现模糊查询

在进行数据库查询时,有完整查询和模糊查询之分。 一般模糊查询语句如下: SELECT 字段 FROM 表 WHERE 某字段 Like 条件 其中关于条件,SQL提供了四种匹配模式: 1,% :表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。 比如 SELECT * FROM [user] WHERE u_name LIKE ‘%三%’ 将会把...

Imperfect girl的博客 6万+

Aider的Repo Map功能

要把整个项目的所有文件添加到 Repo Map 中,需要调整 Aider 的行为,让它扫描整个代码库并将所有文件纳入 Repo Map。在使用 Aider 时,Repo Map 默认只包含当前会话中明确指定的文件(通过命令行传入的。通过命令行将整个项目的文件列表传递给 Aider,使其初始化时包含所有文件。,让 Aider 在初始化时自动加载整个项目的文件到。如果你的项目是 Git 仓库,Aider 可以通过。在 Aider 的交互模式中,手动添加整个项目文件。,从而生成包含所有文件的 Repo Map。

qq_41638872的博客 1638

js模糊查询

第一篇博客。

小龚的博客 2万+

python 写一个简单的 telegram bot (电报机器人)

replit.com 环境配置太恶心了,只能使用 poetry.poetry 这个名字是挺好听,用起来也是很垃圾,太恶心。heroku.com 注册登录不方便,需要各种验证。所以,部署的问题,目前搁置。

waterHBO的博客 3197

37、基于视觉的轻量级面部呼吸和心率测量技术

本文提出了一种基于视觉的轻量级面部呼吸和心率测量技术,通过远程光电容积脉搏波描记法(RPPG)和面部振动信息实现非接触式生理信号采集。创新性地结合框选和特征点选择多个感兴趣区域(ROI),并采用光流跟踪、主成分分析(PCA)和集成经验模态分解(EEMD)等方法优化信号处理流程。实验结果表明,该方法在测量精度和稳定性方面优于传统方法,并可在树莓派4等低功耗平台上实现实时运行,具有广泛的应用前景。

r7s8t的博客 307

Java 模糊查询

在学习Java 这门语言过程中,会遇到无数的知识点与错误,最重要的是我们能够在茫茫的代码中找到突破口,并用心去汲取精华。 在很多时候我们会用到模糊查询,这里是我在编码过程中用到的模糊查询。 JSP : <input value="${athenticationname}"id="athenticationname" type="text" class="text_add" style=" w...

Brave的博客 1万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

MySQL - 如何优化模糊查询(like 模糊查询)

在MySQL中,模糊查询肯定要使用like关键字,然后在加 %%,是代表前模糊还是后模糊。数据量小的情况下,不容易看出查询的效率,但是数据量达到百万级,千万级甚至更高的时候,查询的效率就很容易显现出来了,此时,查询效率就显得很重要了,接下来,就要看你如何优化了。 前面讲过 MySQL - 如何提高SQL的查询效率(where条件优化) 全局检索 建立索引的情况下 一般情况下like模...

Soinice的博客 2万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

es java 模糊查询_java使用elasticsearch进行模糊查询

java使用elasticsearch进行模糊查询使用环境上篇文章本人已书写过,需要maven坐标,ES连接工具类的请看上一篇文章,以下是内容是笔者在真实项目中运用总结而产生,并写的是主要方法和思路,具体实现大家可以看后面文章,若其中有不适,请大家多多包涵一、ES模糊查询(一)不含中文模糊查询,适用于数字SearchResponse searchResponse=null;//连接elastics...

weixin_28809647的博客 7121

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

PostgreSQL模糊查询

说明: 数据库中常用到模糊查询基本分为三类:后模糊(abc%)、前模糊(%abc)、前后模糊(%abc%),一般数据库中都能够支持后模糊查询,但是对于前模糊和前后模糊的支持并不好,但是PostgreSQL对于模糊查询的支持可以说是相当强大,针对不同场景有不同的优化手段,在PostgreSQL中对于这三种模糊查询采用的方法大致如下: 后模糊(abc%):可以使用btree来优化 前模糊(%abc):...

Focus on PostgreSQL 5827

MySql 模糊查询

SQL 模糊查询 在进行数据库查询时,有完整查询和模糊查询之分。 一般模糊查询语句如下: SELECT 字段 FROM 表 WHERE 某字段 Like 条件 其中关于条件,SQL提供了四种匹配模式: 1,% :表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示

honorWE的博客 3万+

mybatis之模糊查询方法

mysql 模糊查询方法之concat和bind的区别

爱丫爱的博客 1万+

Python模糊查询

Python提供了多种实现模糊查询的方法,无论是处理字符串还是查询数据库。对于字符串的模糊查询,可以使用Pandas的方法和Python的re模块。对于数据库的模糊查询,可以直接使用SQL的LIKE子句,或者通过ORM库来简化操作。根据具体的需求和场景,选择合适的模糊查询方法能够大大提高数据处理的效率和准确性。

Python老吕的博客 1497

模糊查询和精准查询区别_报表工具模糊查询--java报表参数模糊查询

精确查询和模糊查询是我们常用的两种查询方式,在已知查询条件的情况下,我们可以使用精确查询快速的查到想要的数据,但是,很多时候我们并不记得确切的查询条件,这时候模糊查询就至关重要了,他可以更灵活方便的帮我们定位数据,报表工具如何实现模糊查询,去乾学院看个究竟:轻松 get 报表模糊查询技能!复制摘要在银行、销售、仓库管理等的数据查询系统中,我们经常会用到精确查询来准确获取想要的数据,但是很多时候我们...

weixin_34608222的博客 7474

ElasticSearch 模糊查询 wildcard 的一些问题(模糊查询不精准问题)

我们都知道在ES中如果我们想要实现MySQL中的like查询的时候可以使用wildcard 通配符来进行操作。其中?代表任意一个字符*代表任意的一个或多个字符。操作语句如下 #模糊查询,比如查询李世民 GET booke/member/_search {"query": { "wildcard":{ "senderName": "李*" } } } ...

HiBoyljw的博客 2万+

Linq的模糊查询(包含精确模糊查询)

目录: 1.判断是否为空或者null 2.普通包含模糊查询   1)以某字符串开头的模糊查询   2)以某字符串结尾的模糊查询   3)包含某字符串的模糊查询 3.精确到字符串对应位数字符的模糊查询(*重点) linq大家肯定用过,对于其中的模糊查询肯定也有所了解 提起linq的模糊查询首先大家想到的肯定是Contains 不错这也是linq模糊查询的精髓,一般的模糊查询...

theFish2017的博客 2035
上一篇: 关于jqgrid嵌入adminLte框架的样式问题
下一篇: 数字格式化
hero-zzzzy
博客等级 码龄9年 0粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值