zoukankan      html  css  js  c++  java
  • 模糊查询(类似百度搜索框)

    很常见的搜索框,很常用,总结一下,怕自己忘了,使用的是原生的js。

     这是原生写的,代码很简单,重要是思路。主要就是用了一个indexOf(),很简单。越简单的东西越难想到,很多人都会想到用正则去做,这样就舍近求远了。

    html部分:

    <div id="box">
        <input type="text" id="txt" value = "">
        <input type="button" id="btn" value="搜索">
    </div>
    

    javascript部分:

    //创建假数据
    var array=["aaa","abc","aab","acc","bcc","caa"];
    // 判断id为pop的div是否存在如果存在应删除 ===========> 感谢 盛夏的永夜 的提醒
    if (
    document.getElementById("pop")) {

      divBox.removeChild(document.getElementById("pop"));

    }
    //获取文本框注册keyup事件
    document.getElementById('txt').onkeyup=function(){
      var divBox = document.getElementById('box');
      //临时数组
      var tmpArray = [];
      //获取数据源中的每一条数据
      for(var i=0;i<array.length;i++){
          //找到以你输入的内容为开头的所有数据
          if(array[i].indexOf(this.value) === 0){
            //将找到的数据push到临时数组中
            tmpArray.push(array[i]);
          }
      }
      //临时数组为空时,不新建显示框
      if(tmpArray.length === 0){return;}
      //如果搜索框没有值时也不新建显示框
      if(this.value.length === 0){
        //如果此时已经有了显示框,应该除去
        if(document.getElementById("pop")){
            divBox.removeChild(document.getElementById("pop"));
        }
        return;
      }    
      //临时数组有数据
      var dvObj = document.creatElement("div");
       dvObj.id = "pop";
      //将div添加到box中
      divBox.appendChild(dvObj);
      var ulObj=document.createElement("ul"); 
      //将ul添加到dvObj中
      dvObj.appendChild(ulObj);
      //遍历临时数组,动态创建li
      for(var i = 0;i<tmpArray.length;i++){
        var liObj = document.createElement("li");
        //将tr添加到ulObj中
        ulObj.appendChild(liObj);
        //将临时数组中的数据添加到li中
        setinnerText(liObj,tmpArray[i]);
      }
    }

    css的样式没有写肯定会有问题,只能留给你们了,都写完了,就没意思了。我是一个喜欢留坑的人。

  • 相关阅读:
    约瑟夫解决问题的循环链表
    [Erlang危机](5.1.0)VM检测概述
    找呀志_java网络编程(5)TCP和udp差额
    有序输出两棵二叉查找树中的元素
    1234567选择3个数字组合
    八皇后问题
    矩阵乘法运算
    求π的近似值
    证明不小于6的偶数都是两个素数之和
    最大公约数最小公倍数
  • 原文地址:https://www.cnblogs.com/ryze/p/ryze03.html
Copyright © 2011-2022 走看看