前端js模糊搜索(模糊查询)

1.html结构:

<label for="searchShop" class="clear pos-a" style="top:17px;">
            <input type="text" id="searchShop" placeholder="场所搜索">
            <input type="button" value="搜索" class="searchIcon searchShopBtn">
  </label>

/*查询结果放ul里面*/

<ul id="searchResult" class="searchResult">

</ul>

2.css样式:

#searchShop {

  1. line-height: 28px;
  2. text-indent: 5px;
  3. width: 180px;
  4. float:left
  5. height: 28px;
  6. border: none;

}

.searchShopBtn{

  1. font-size: 0;
  2. padding-left: 15px;
  3. padding-right: 15px;
  4. background-color: #eff3f6;
  5. background-repeat: no-repeat;
  6. background-position: 8px 5px;

}

.searchIcon {//小的搜索图标

  1. background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFW…07gDgaiP9C+Y2UpKM1QJwIxB+hwQAGjNQqj5gYqAQAAgwAkpg6e/xOfYMAAAAASUVORK5CYII=);

}

/*查询结果对应的显示框css*/

.searchResult {

  1. position: absolute;
  2. top: 47px;
  3. right: 70px;
  4. width: 180px;
  5. border: 1px solid #e4e7ee;
  6. border-top: 0;
  7. border-bottom: 0;
  8. background: #fff;
  9. max-height: 279px;
  10. overflow-y: auto;
  11. overflow-x: hidden;
  12. z-index: 2;

}

/*列表都是li组成css*/

.searchResult li {

  1. border-bottom: 1px solid #e4e7ee;
  2. line-height: 30px;
  3. padding-left: 4px;
  4. width: 176px;
  5. list-style:none;

}

/*以上是样式,不合适请自行调整*/

静态效果是这样的:

假如输入个c:那么结果是这样的

这个有搜索结果的对应的结构是这样的:里面的li是动态添加进去的,只需要把这个ul写好放着就行。

3.搜索功能实现的相关js,     依赖jquery.js

var isHasnextPage = false;//是否有下一页数据var searchItem = ‘‘;//搜索框内容var pageNum = 1;//默认page

//监听搜索框输入事件,有内容的话就进行查询$(‘#searchShop‘).on(‘input‘, function () {    var _v = $.trim($(this).val());    $(‘#searchResult‘).empty();    pageNum = 1;    isHasnextPage = false;    if (_v != ‘‘) {        searchItem = _v;        searchShopFn(_v, pageNum);    }});
/** * 搜索结果的下拉加载更多,每页显示十条,如果搜索结果多余十条,下拉对应的列表,会自动把其他数据添加进来 * @method  nextLoad() * @param {nextLoad:false or  ture,keyWord:keyWord,nextLoad:true or  false} * @return {data} */

function nextLoad(keyWord, isHasnextPage) {    if (!!isHasnextPage) {        searchShopFn(keyWord, pageNum += 1)    }}

//滚动到底部加载数据$(‘#searchResult‘).scroll(function () {    if ($(this).height() + $(this).scrollTop() >= $(this)[0].scrollHeight) {        nextLoad(searchItem, isHasnextPage);    }});
//点击每条数据给搜索框赋值,同时需要重新设置对应的参数$(document).on(‘click‘, ‘.searchResult li‘, function () {    var _v = $(this).text();    var _shopId = $(this).attr(‘shopId‘);    $(‘#searchShop‘).val(_v).attr(‘shopId‘, _shopId);    $(‘#searchResult‘).hide();    isHasnextPage = false;    return false;

});
//模糊查询ajax请求数据  keyWord就是关键词,pageNum是对应的页码function searchShopFn(keyWord, pageNum) {    $.ajax({        url: $web_url + "xxxxr",//请求数据的地址,        dataType: "json",        data: {            keyword: keyWord,            brandid: ‘‘,            province: ‘‘,            city: ‘‘,            area: ‘‘,            page: pageNum || 1,            size: 10        },        success: function (res) {            var liAry = res.data.list;            var liAryTotal = res.data.total;            isHasnextPage = (pageNum * 10 < liAryTotal) ? true : false;            var m = ‘‘;            $.each(liAry, function (i, v) {                m += ‘<li shopId="‘ + v.id + ‘" title="‘ + v.name + ‘">‘ + v.name + ‘</li>‘;            });            $(‘#searchResult‘).append(m);

}, error: function (res) {

}

})}

4.这样就可以实现对应的模糊搜索,以下是输入一个s之后,返回的结果展示:


 
时间: 2024-10-19 04:33:28

前端js模糊搜索(模糊查询)的相关文章

js的模糊查询

在项目中会用到模糊查询,之前在首页是用的element的tree显示的目录,会有用到搜索,但tree里边会有自带的模糊查询,用filter-node-method方法使用 但上次的项目中 又涉及到不试用插件的模糊搜索,使用原生来搜索,其实网上有很多种,但个人觉得正则还是好用,不区别大小写很方便,之前看网上测评速度,正则的速度也挺快的, <input type="text" v-model="textData" /> data() { return { t

前端过滤加模糊查询

1 function gainSearch (payload) { //payload 为查询关键字 2 const list = window.gainList // window.gainList 为一个对象数组 object[] 3 let arr = [] 4 list.filter((index) => { // 过滤每一条数据对象 5 if (index.value1.indexOf(payload) >= 0) { // 每条数据对象的第一个值进行模糊搜索,多个可采用 || 6

基于HTML5 Bootstrap搭建的后台模板,分页,模糊查询已经全部JS实现,无需编码,嵌入数据即可开发,内置8款皮肤,欧美风格,非常好用!

原文:基于HTML5 Bootstrap搭建的后台模板,分页,模糊查询已经全部JS实现,无需编码,嵌入数据即可开发,内置8款皮肤,欧美风格,非常好用! 源代码下载地址:http://www.zuidaima.com/share/1550463575788544.htm 分页,查询功能已经全部用JS实现,无需再做此类代码编写,嵌入数据即可,真心美观好用.       

用js实现表格多条件模糊查询,可兼容分页

需求如下: 实现姓名.职位.直属上级.用户类型四个条件模糊查询,查询到的结果分页展示. 实现逻辑: 定义两个数组,其中vm.nowallUserLists为原始数据.vm.nowallUserFilter为筛选后数据.最终循环vm.nowallUserFilter来渲染表格. 筛选前,将vm.nowallUserLists的值赋给vm.nowallUserFilter,表格渲染全部数据. 筛选时,先初始化vm.nowallUserFilter为空数组,将筛选得到的内容推到这个数组中.此时表格渲染

js实现下拉框模糊查询

keyup方法触发模糊查询 list : Array<any> //下拉列表所有内容 filtList:Array<any> //过滤后的内容 inputContent : string //输入的内容 方法一,filter()遍历: filtList = list.filter(data => { return data && data.toString().indexOf(inputContent)!==-1 }) 方法二,for循环: for(const

JavaScript根据Json数据来做的模糊查询功能

类似于百度搜索框的模糊查找功能 需要有有已知数据,实现搜索框输入字符,然后Js进行匹配,然后可以通过鼠标点击显示的内容,把内容显示在搜索框中 当然了,正则只是很简单的字符匹配,不具备多么复杂的判断 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>模糊查询</title> <style> *{

Web前端错题模糊题记录

title: Web前端错题模糊题记录 toc: true date: 2018-09-20 10:04:36 categories: Web tags: HTML CSS JavaScript HTML 元素的alt和title有什么异同? alt和title同时设置的时候,alt作为图片的替代文字出现,title是图片的解释文字. 关于html5标签? <audio> 标签定义声音,比如音乐或其他音频流. <canvas> 标签定义图形,比如图表和其他图像.<canvas

Springmvc+Myabtis+Ajax实现异步分页emp+dept(全部查询及模糊查询)

1.在项目中创建如下目录 2.创建实体类Dept package com.entity; import java.io.Serializable; /** * 部门表 * @author Administrator * */ public class Dept implements Serializable{ /** * */ private static final long serialVersionUID = 1L; private Integer deptno; private Stri

ajax 判断账户密码 调取数据模糊查询 时钟

一.判断账户密码 <Login.html> 1 <head> 2 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 3 <title></title> 4 <script src="Script/jquery.js"></script> 5 <script languag