美文网首页
前端js模糊搜索(模糊查询)

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

作者: 大眼袋阿姨 | 来源:发表于2019-02-20 15:54 被阅读0次

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 {
    line-height: 28px;
    text-indent: 5px;
    width: 180px;
    float:left
    height: 28px;
    border: none;
}
.searchShopBtn{
    font-size: 0;
    padding-left: 15px;
    padding-right: 15px;
    background-color: #eff3f6;
    background-repeat: no-repeat;
    background-position: 8px 5px;
}
 .searchIcon {//小的搜索图标
     background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFW…07gDgaiP9C+Y2UpKM1QJwIxB+hwQAGjNQqj5gYqAQAAgwAkpg6e/xOfYMAAAAASUVORK5CYII=);
  }

查询结果对应的显示框css

 .searchResult {
     position: absolute;
     top: 47px;
     right: 70px;
    width: 180px;
    border: 1px solid #e4e7ee;
    border-top: 0;
    border-bottom: 0;
    background: #fff;
    max-height: 279px;
    overflow-y: auto;
    overflow-x: hidden;
    z-index: 2;
}

列表都是li组成css

.searchResult li {
    border-bottom: 1px solid #e4e7ee;
    line-height: 30px;
    padding-left: 4px;
    width: 176px;
    list-style:none;
}
静态效果是这样的: image 假如输入个c:那么结果是这样的 image

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

image

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之后,返回的结果展示:

image

相关文章

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

    1.html结构: 查询结果放ul里面 2.css样式: 查询结果对应的显示框css 列表都是li组成css 这个...

  • js前端模糊查询

    模糊查询,就是根据关键字把列表中符合关键字的罗列出来(当然这里只做了最简单的),也就是要检查列表的每一项中是否含有...

  • 前端、js实现树形结构数据的模糊搜索查询、模糊过滤

    示例: 需求:输入 “景区” 字,希望树形结构中带有 “景区” 字的项显示,即使父节点没有,但子节点含有,父节点仍...

  • 前端模糊查询

    实现前端模糊查询效果 实验证明 这种方法可以达到模糊查询的效果,但是把搜索的字删了,数据也就没了,不能复原,应该要...

  • js模糊查询

    今天完善项目时,新增了一个搜索功能,具体思路就不说了,主要是是纪录一下js实现模糊查询的方法 1、正则表达式 2、...

  • js:模糊搜索

    //模糊搜索开始 var sFind = document.getElementById("show").valu...

  • js实现模糊查询纯前端

    今天为大家分享js实现模糊查询的功能! (如果解决了您的问题,请帮忙给我点个赞吧,谢谢!!!) 话不多说直接上代码...

  • 前端js实现本地模糊搜索

    很多时候我们做模糊查询是传关键字给后台请求后台接口,但是有时候一些轻量级的列表前端来做可以减少ajax请求,在一定...

  • 搜索框模糊查询

    前端html代码 前端js代码 前端css代码 后端php返回json

  • js实现模糊查询

    模糊查询是怎么实现的? 首先,我们要知道模糊查询是根据输入关键字来匹配字符的。然后,根据字符匹配算法来匹配你的输入...

网友评论

      本文标题:前端js模糊搜索(模糊查询)

      本文链接:https://www.haomeiwen.com/subject/jpehyqtx.html