js简单搜索功能

利用数组里面的数据,实现一个简单的搜索功能。

<style>
  .content{
      width:500px;
      margin:40px auto;
  }
  .search{
      width: 400px;
      overflow: hidden;
      
  }
  .search input{
      float: left;
  }
  #val{
      height: 35px;
      width: 300px;
      padding-left: 10px;
  }
  #sub{
      height: 40px;
      width: 80px;
      margin-left: 3px;
      font-size: 20px;
  }
  .show{
      width: 302px;
      height: 300px;
      border: 1px solid #ccc;
      padding-left: 10px;
      display: none;
  }
  .show p{
      font-size: 12px;
  }
</style>
<body>
  <div class="content">
    <div class="search">
      <input type="text" id="val" placeholder="请输入搜索内容">
      <input type="submit" id="sub">
    </div>
    <div id="show" class="show">
      <!-- 搜索内容显示区域 -->
    </div>
  </div>
  <script type="text/javascript">
    //创建一个数组,里面放数据
    let arr = ['HTML','CSS','javaScript','jQuery','bootstrap','vue','ajax','project','git','node','linux','ps'];
    // 获取输入框
    let input = document.getElementById('val');
    // 获取由于div组成的搜索框内容区域
    let show = document.getElementById('show');
    // 当释放键盘按钮时执行
    input.onkeyup = function(){
      // 改变搜索框内容的display属性,来显示内容
      show.style.display = 'block';
      // input.value 和 arr的每一项进行匹配 indexOf() 匹配不到返回-1
      let str = '';
      arr.forEach((item)=>{
        let res = item.indexOf(input.value);
        if(res != -1){
          str += '<p>'+item+'</p>';
        }
      })
      // 如果没有内容就显示没有结果
      if(!input.value || !str){
        show.innerHTML = '<p>暂无结果</p>'
      }else{
        show.innerHTML = str;
      }
    }
    // 当用户离开input输入框时执行,失去焦点,清除搜索框内容
    input.onblur = function(){
      show.style.display = 'none';
      input.value = '';
    }
  </script>
</body>

 

posted @ 2021-08-26 17:14  Private!  阅读(959)  评论(0编辑  收藏  举报