前端实现模糊搜索

之前在网上搜一些关于前端模糊搜索的时候搜到的大部分都是些赋值粘贴过来的内容,毫无实际指导作用。所以我就自己用原生js写了一个前端模糊搜索的demo,方法有很多,我只是用我自己的方法逻辑写了一点。这里的话其实用到了一个小技巧就是用indexOf方法匹配一个空值的时候返回的是0而不是-1。
上代码:

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>模糊查询</title>
</head>
<style>
    .wrap {
        text-align: center;
        max-width: 400px;
    }

    #newsBox {
        display: inline-block;
        text-align: left;
    }
    input{
        width: 100%;
    }
</style>
<body>
<div class="wrap">
    <input type="text" id="demo">
    <ul id="newsBox">
    </ul>
</div>
</body>
<script type="text/javascript">
    var data = ["百年南开:牢记嘱托立德树人","书写命运与共的世界故事100天后,世园会等你来","打造一支高素质政法队伍2019北京两会","跋山涉水接力跑——全面深化改革的“广东探索”",
    "归途,开启家的记忆—写在2019年春运之际","春运大幕今开启 多部门联动将严打车闹座霸","人社部:已为38.9万农民工追发工资待遇57亿元","个人所得税APP更新,房屋出租人信息不用填了"]
    var input = document.getElementById("demo");
    var ul = document.getElementById("newsBox");
    function creat() {
      var value = input.value;
      var html = "";
      var newData = data.filter(item => {
        if(item.indexOf(value) > -1){//indexOf方法中如果xxx.indexOf("")返回值为0
          return item
        }
        return newData
      })
      if(newData.length > 0){
        for(var i=0;i<newData.length;i++){
          html += `<li>${newData[i]}</li>`
        }
      }else{
        html += `<li>暂无数据</li>`
      }
      ul.innerHTML = html;
    }
    creat()
    input.onchange = function (e) {
      creat()
    }
</script>
</html>
  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值