模拟百度搜索框
来源:互联网 发布:c语言整型运算符 编辑:程序博客网 时间:2024/05/16 06:07
在使用百度搜索是,页面会根据我们输入的内容自动匹配一些候选内容。
实现的主要过程主要是:
1、用户在输入一个字符结束后,在onkeyup事件中获取用户输入的内容。
2、根据获取到的内容向服务器发送请求,匹配到相似的数据,存到数组中。
3、判断数组是否有内容,如果有数据,就在搜索框下面遍历匹配到的内容(候选项)。
首先,要写好页面布局
html部分
<html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>模拟百度搜索框</title> <meta charset="utf-8" /> <style> fieldset, img, input, button { border: none; padding: 0; margin: 0; outline-style: none; } ul, ol { list-style: none; margin: 0px; padding: 0px; } #box { width: 405px; margin: 200px auto; position: relative; } #txtSearch { float: left; width: 300px; height: 32px; padding-left: 4px; border: 1px solid #b6b6b6; border-right: 0; } #btnSearch { float: left; width: 100px; height: 34px; font: 400 14px/34px "microsoft yahei"; color: white; background: #3385ff; cursor: pointer; } #btnSearch:hover { background: #317ef3; } #pop { width: 303px; border: 1px solid #ccc; padding: 0px; position: absolute; top: 34px; } #pop ul li { padding-left: 5px; } #pop ul li:hover { background-color: #CCC; } </style></head><body> <div id="box"> <input type="text" id="txtSearch"> <input type="button" value="百度一下" id="btnSearch"> <!-- <div id="pop"> <ul> <li>候选1</li> <li>候选2</li> <li>候选3</li> <li>候选4</li> </ul> </div> --> </div></body></html>
js部分
这里我们假设已经从服务端获取到了数据
//从服务端获取到的数据 var datas = ["a", "abc", "abbbb", "abxxxx", "xyz", "abcdef", "abzzzz"]; var box = document.getElementById("box"); var txtSearch = document.getElementById("txtSearch"); txtSearch.onkeyup = function () { //这是数组是用来存储匹配到的数据,用来展示到列表里 var arr = new Array(); for (var i = 0; i < datas.length; i++) { if (datas[i].indexOf(this.value) >= 0) { arr.push(datas[i]); } } //如果有了pop,就把pop删了 if (document.getElementById("pop")) { box.removeChild(document.getElementById("pop")); } //如果没有内容,什么也不做 注意:这是在删除pop之后判断,因为输入框没有内容匹配到的就是全部数据,列表中展示的就是全部数据 if (this.value.length <= 0) { return; } //把匹配到数据放到列表里 if (arr.length > 0) { var div = document.createElement("div"); div.id = "pop"; var ul = document.createElement("ul"); div.appendChild(ul); for (var i = 0; i < arr.length; i++) { var li = document.createElement("li"); li.innerHTML = arr[i]; ul.appendChild(li); } box.appendChild(div); } }
0 0
- 模拟百度搜索框
- JS_模拟百度搜索框
- 模拟百度搜索框提示功能实例
- Js之模拟百度搜索框
- Ajax模拟百度搜索框的自动补全功能
- selenium简单模拟百度搜索点击器
- js模拟百度主页搜索功能
- js案例-1 模拟百度搜索
- 模拟百度搜索接口输出关键词
- Python模拟百度自动输入搜索功能
- 仿百度搜索框
- ajax百度搜索框
- 百度搜索框
- QQ2008搜索框模拟
- JS JQuery 模拟百度搜索上下键选取
- DuiLib : 模拟百度网页的填写和搜索
- python模拟打开百度网页并搜索内容
- 百度 - 搜索框的suggestion
- 【hdoj_1257】最小拦截系统
- 关于extern指针和数组的用法
- QTouch嵌入式组态软件
- Python连接oracle数据库
- 解决报no jacob-1.18-M2-x86 in java.library.path错误
- 模拟百度搜索框
- ymPrompt消息提示组件4.0版[2009-03-02]DEMO演示及使用简介
- HttpClient4.5 post请求xml到服务器
- 调用百度地图api去掉地图左下角百度地图的链接logo
- 透过管理帧保护看WAPI协议安全性
- 语法分析算法LR(1)基础教程
- HTTP 的重定向301,302,303,307(转)
- 在命令行键入“cl”时出现不是内部或外部命令,也不是可运行的程序或批处理文件的问题。
- JavaScript模块化开发总结(摘抄至…