JS仿百度自动下拉框模糊匹配提示


Posted in Javascript onJuly 25, 2016

JS仿百度自动下拉框模糊匹配提示

实际项目中,我们可以把数据获取改成ajax动态获取,在 getContent()中

<!DOCTYPE>
<html>
<head>
<title>js/jQuery实现类似百度搜索功能</title>
<meta name="Author" content="Michael">
<meta name="Keywords" content="js/jQuery实现类似百度搜索功能">
<meta name="Description" content="js/jQuery实现类似百度搜索功能,可用键盘控制">
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<style type="text/css">
#container {
position: absolute;
left: 50%;
top: 40%;
}
#content {
float: left;
position: relative;
right: 50%;
}
input {
border: 0;
width: 288px;
height: 30px;
font-size: 16px;
padding: 0 5px;
line-height: 30px;
}
.item {
padding: 3px 5px;
cursor: pointer;
}
.addbg {
background: #87A900;
}
.first {
border: solid #87A900 2px;
width: 300px;
}
#append {
border: solid #87A900 2px;
border-top: 0;
display: none;
}
</style>
</head>
<body>
<div id="container">
<div id="content">
<div class="first">
<input id="kw" onKeyup="getContent(this);" />
</div>
<div id="append"></div>
</div>
</div>
<script type="text/javascript">
var data = [
"你好,我是Michael",
"你是谁",
"你最好啦",
"你最珍贵",
"你是我最好的朋友",
"你画我猜",
"你是笨蛋",
"你懂得",
"你为我着迷",
"你是我的眼"
];
$(document).ready(function() {
$(document).keydown(function(e) {
e = e || window.event;
var keycode = e.which ? e.which : e.keyCode;
if (keycode == 38) {
if (jQuery.trim($("#append").html()) == "") {
return;
}
movePrev();
} else if (keycode == 40) {
if (jQuery.trim($("#append").html()) == "") {
return;
}
$("#kw").blur();
if ($(".item").hasClass("addbg")) {
moveNext();
} else {
$(".item").removeClass('addbg').eq(0).addClass('addbg');
}
} else if (keycode == 13) {
dojob();
}
});
var movePrev = function() {
$("#kw").blur();
var index = $(".addbg").prevAll().length;
if (index == 0) {
$(".item").removeClass('addbg').eq($(".item").length - 1).addClass('addbg');
} else {
$(".item").removeClass('addbg').eq(index - 1).addClass('addbg');
}
}
var moveNext = function() {
var index = $(".addbg").prevAll().length;
if (index == $(".item").length - 1) {
$(".item").removeClass('addbg').eq(0).addClass('addbg');
} else {
$(".item").removeClass('addbg').eq(index + 1).addClass('addbg');
}
}
var dojob = function() {
$("#kw").blur();
var value = $(".addbg").text();
$("#kw").val(value);
$("#append").hide().html("");
}
});
function getContent(obj) {
var kw = jQuery.trim($(obj).val());
if (kw == "") {
$("#append").hide().html("");
return false;
}
var html = "";
for (var i = 0; i < data.length; i++) {
if (data[i].indexOf(kw) >= 0) {
html = html + "<div class='item' onmouseenter='getFocus(this)' onClick='getCon(this);'>" + data[i] + "</div>"
}
}
if (html != "") {
$("#append").show().html(html);
} else {
$("#append").hide().html("");
}
}
function getFocus(obj) {
$(".item").removeClass("addbg");
$(obj).addClass("addbg");
}
function getCon(obj) {
var value = $(obj).text();
$("#kw").val(value);
$("#append").hide().html("");
}
</script>
</body>
</html>

以上所述是小编给大家介绍的JS仿百度自动下拉框模糊匹配提示,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
IE DOM实现存在的部分问题及解决方法
Jul 25 Javascript
JQuery Tips(2) 关于$()包装集你不知道的
Dec 14 Javascript
jQuery中live方法的重复绑定说明
Oct 21 Javascript
AngularJS 单元测试(一)详解
Sep 21 Javascript
原生js验证简洁注册登录页面
Dec 17 Javascript
js实现键盘自动打字效果
Dec 23 Javascript
微信小程序picker组件简单用法示例【附demo源码下载】
Dec 05 Javascript
jQuery进阶实践之利用最优雅的方式如何写ajax请求
Dec 20 jQuery
微信小程序出现wx.navigateTo页面不跳转问题的解决方法
Dec 26 Javascript
利用js-cookie实现前端设置缓存数据定时失效
Jun 18 Javascript
vue router 跳转时打开新页面的示例方法
Jul 28 Javascript
Nuxt.js实现一个SSR的前端博客的示例代码
Sep 06 Javascript
JS本地刷新返回上一页代码
Jul 25 #Javascript
jQuery layui常用方法介绍
Jul 25 #Javascript
Bootstrap Validator 表单验证
Jul 25 #Javascript
javascript封装addLoadEvent实现页面同时加载执行多个函数的方法
Jul 25 #Javascript
最简单纯JavaScript实现Tab标签页切换的方式(推荐)
Jul 25 #Javascript
基于CSS3和jQuery实现跟随鼠标方位的Hover特效
Jul 25 #Javascript
javascript insertAfter()定义与用法示例
Jul 25 #Javascript
You might like
【星际争霸1】人族1v7家ZBath
2020/03/04 星际争霸
php反弹shell实现代码
2009/04/22 PHP
mac下使用brew配置环境的步骤分享
2011/05/23 PHP
又十个超级有用的PHP代码片段
2015/09/24 PHP
PHP连接数据库实现注册页面的增删改查操作
2016/03/27 PHP
不用AJAX和IFRAME,说说真正意义上的ASP+JS无刷新技术
2008/09/25 Javascript
js文本框输入点回车触发确定兼容IE、FF等
2013/11/19 Javascript
javascript模拟实现ajax加载框实例
2014/10/15 Javascript
javascript常见数据验证插件大全
2015/08/03 Javascript
基于JavaScript代码实现微信扫一扫下载APP
2015/12/30 Javascript
jQuery操作Table技巧大汇总
2016/01/23 Javascript
基于JavaScript实现滑动门效果
2017/03/16 Javascript
JS 插件dropload下拉刷新、上拉加载使用小结
2017/04/13 Javascript
微信小程序联网请求的轮播图
2017/07/07 Javascript
浅谈事件冒泡、事件委托、jQuery元素节点操作、滚轮事件与函数节流
2017/07/22 jQuery
详解Node中导入模块require和import的区别
2017/08/11 Javascript
node的process以及child_process模块学习笔记
2018/03/06 Javascript
基于vue v-for 多层循环嵌套获取行数的方法
2018/09/26 Javascript
python的迭代器与生成器实例详解
2014/07/16 Python
python创建和删除目录的方法
2015/04/29 Python
Python 中Django安装和使用教程详解
2019/07/03 Python
Python笔记之代理模式
2019/11/20 Python
python词云库wordCloud使用方法详解(解决中文乱码)
2020/02/17 Python
使用IPython或Spyder将省略号表示的内容完整输出
2020/04/20 Python
python闭包与引用以及需要注意的陷阱
2020/09/18 Python
详解Python流程控制语句
2020/10/28 Python
Python中对象的比较操作==和is区别详析
2021/02/12 Python
CSS3五个技巧给你的网站带来出色的效果
2009/04/02 HTML / CSS
抽象方法、抽象类怎样声明
2014/10/25 面试题
敲诈同学钱财检讨书范文
2014/11/18 职场文书
2014年残疾人工作总结
2014/12/06 职场文书
2014年创先争优工作总结
2014/12/11 职场文书
MySQL Innodb关键特性之插入缓冲(insert buffer)
2021/04/08 MySQL
JavaScript中isPrototypeOf函数
2021/11/07 Javascript
Pyhton爬虫知识之正则表达式详解
2022/04/01 Python
详解Mysql事务并发(脏读、不可重复读、幻读)
2022/04/29 MySQL