模糊查询(类似百度搜索框)

很常见的搜索框,很常用,总结一下,怕自己忘了,使用的是原生的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"];
//获取文本框注册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 trObj = document.createElement("tr");
    //将tr添加到ulObj中
    ulObj.appendChild(liObj);
    //将临时数组中的数据添加到li中
    setinnerText(liObj,tmpArray[i]);
  }
}

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

时间: 2024-08-06 07:34:37

模糊查询(类似百度搜索框)的相关文章

上课笔记_使用DWR实现自动补全 类似百度搜索框的自动显示效果

使用DWR实现自动补全 自动补全:是指用户在文本框中输入前几个字母或汉字的时候,自动在存放数据的文件或数据库中将所有以这些字母或汉字开头的数据提示给用户供用户选择 在日常上网过程中,我们经常使用搜索引擎,当我们输入想要检索的关键字时,搜索引擎会提示我们相关的关键字 训练要点: 掌握使用DWR框架开发Ajax程序 使用MyEclipse 10.0 + MySql5.0 新建数据库:可以手动随便新建一个测试用的 DROP TABLE IF EXISTS `books`; CREATE TABLE `

React实现百度搜索框

import React,{Component} from 'react' import ReactDOM,{render} from 'react-dom' import 'bootstrap/dist/css/bootstrap.min.css' // import PropTypes from 'prop-types'; import JSONP from 'jsonp' //封装jonsp为promise对象 function jsonp(url,opts={}) { return ne

原生JS模拟百度搜索框

近期有个新入行的小伙伴一直在问一些基础知识,突然觉得人的记忆力有限,有些平常很少用到的知识点虽简单却也其实很容易模糊,或者是一个单词,或者是一个语法.所以想着应该利用一下工作之余的碎片时间,记录一些工作上的问题和一些有趣的小案例,于是开通了播客,一方面便于自己日后翻阅,一方面给刚学习的小伙伴一个参考. 今天先写一个简单的小案例:原生JS模拟百度搜索框. 需求: 1.当在输入框输入时,每输入一个文字,就会在下方展示相关内容列表 2.每一次输入框输入,清空上一次内容 3.鼠标移入列表内容时,对应的内

在页面中嵌入百度搜索框

呈现效果如下: 实现代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>在页面中嵌入百度搜索框</title> <style> form { width: 500px; height: 50px; padding: 10px 20px 20px; text-align: center; line-height: 50px;

模拟百度搜索框,输入时显示历史记录

今天写了个小demo,利用本地存储的特点,模拟百度搜索框. 主要知识是利用本地存储的特点,模拟百度搜索时的历史记录显示. 主要HTML代码为 <div class="search"> <input type="text"/> <button class="btn">搜索</button> </div> <ul class="hidden"> <li&

模拟百度搜索框

在使用百度搜索是,页面会根据我们输入的内容自动匹配一些候选内容. 实现的主要过程主要是: 1.用户在输入一个字符结束后,在onkeyup事件中获取用户输入的内容. 2.根据获取到的内容向服务器发送请求,匹配到相似的数据,存到数组中. 3.判断数组是否有内容,如果有数据,就在搜索框下面遍历匹配到的内容(候选项). 首先,要写好页面布局 html部分 <html> <head> <meta http-equiv="Content-Type" content=&

“百度搜索框提示”代码

使用方法: 百度提供了2种自定义调用的方法方法一: 第一步为需要添加“百度搜索框提示”功能的<input>标签添加baiduSug属性.例如:<input type=”text” name=”word” baiduSug=”1|2″>当设置baiduSug=1时,用户选中sug词条时默认执行表单提交动作:当设置baiduSug=2时,用户选中sug词条时不执行表单提交动作.       第二步      在网页中引入Javascript文件: <script charset=

站长工具|百度搜索框提示功能

百度向站长开放免费“百度搜索框”代码和“百度搜索框提示”代码.只需进行简单的设置, 即可将“ 百度搜索框( 带提示功能)”功能快速加入到您的网页中.提升用户在网站中的搜索体验. 根据不同类型的网站需求,站长工具一共提供三种引入方式供您选择: 简单方式——方便的将“百度搜索框(带提示功能)”直接加入到您的网页中.将以下代码加入到您的网页中,即可获得带有“搜索框提示”功能的百度搜索框 HTML代码: <form action=”http://www.baidu.com/baidu” target=”

百度搜索框提示

方法一: 第一步 为需要添加“百度搜索框提示”功能的<input>标签添加baiduSug属性.例如:<input type=”text” name=”word” baiduSug=”1|2″> 当设置baiduSug=1时,用户选中sug词条时默认执行表单提交动作: 当设置baiduSug=2时,用户选中sug词条时不执行表单提交动作. 第二步 在网页中引入Javascript文件:<script charset=”gbk” src=”http://www.baidu.co