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 相关文章推荐
javascript css在IE和Firefox中区别分析
Feb 18 Javascript
快速解决FusionCharts联动的中文乱码问题
Dec 04 Javascript
jQuery实现的背景动态变化导航菜单效果
Aug 24 Javascript
Bootstrap Table使用方法解析
Oct 19 Javascript
基于javascript实现按圆形排列DIV元素(三)
Dec 02 Javascript
学习vue.js中class与style绑定
Dec 03 Javascript
jQuery实现获取table中鼠标click点击位置行号与列号的方法
Oct 09 jQuery
JQuery实现table中tr上移下移的示例(超简单)
Jan 08 jQuery
AngularJS实现的鼠标拖动画矩形框示例【可兼容IE8】
May 17 Javascript
判断js数据类型的函数实例详解
May 23 Javascript
Angular如何由模板生成DOM树的方法
Dec 23 Javascript
原生JavaScript实现幻灯片效果
Feb 19 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
ThinkPHP关于session的操作方法汇总
2014/07/18 PHP
详解php的socket通信
2015/08/11 PHP
PHP如何通过AJAX方式实现登录功能
2015/11/23 PHP
php封装好的人民币数值转中文大写类
2015/12/20 PHP
jquery写个checkbox——类似邮箱全选功能
2013/03/19 Javascript
javascript中普通函数的使用介绍
2013/12/19 Javascript
jQuery 删除或是清空某个HTML元素示例
2014/08/04 Javascript
深入浅析同源策略和跨域访问
2015/11/26 Javascript
JavaScript Canvas绘制圆形时钟效果
2020/08/20 Javascript
jQuery中extend函数简单用法示例
2017/10/11 jQuery
angular5 httpclient的示例实战
2018/03/12 Javascript
傻瓜式解读koa中间件处理模块koa-compose的使用
2018/10/30 Javascript
在Vant的基础上实现添加表单验证框架的方法示例
2018/12/05 Javascript
Elementui表格组件+sortablejs实现行拖拽排序的示例代码
2019/08/28 Javascript
js实现淘宝首页的banner栏效果
2019/11/26 Javascript
JavaScript中arguments的使用方法详解
2020/12/20 Javascript
JavaScript实现消消乐的源代码
2021/01/12 Javascript
初学python数组的处理代码
2011/01/04 Python
python使用正则搜索字符串或文件中的浮点数代码实例
2014/07/11 Python
Python version 2.7 required, which was not found in the registry
2014/08/26 Python
python实现提取百度搜索结果的方法
2015/05/19 Python
Python实现Linux的find命令实例分享
2017/06/04 Python
windows环境下tensorflow安装过程详解
2018/03/30 Python
Python利用matplotlib.pyplot绘图时如何设置坐标轴刻度
2018/04/09 Python
Python采集猫眼两万条数据 对《无名之辈》影评进行分析
2018/12/05 Python
解决win7操作系统Python3.7.1安装后启动提示缺少.dll文件问题
2019/07/15 Python
简单了解python变量的作用域
2019/07/30 Python
python 利用jinja2模板生成html代码实例
2019/10/10 Python
python能做什么 python的含义
2019/10/12 Python
flask 框架操作MySQL数据库简单示例
2020/02/02 Python
class类在python中获取金融数据的实例方法
2020/12/10 Python
施工班组长岗位职责
2014/01/05 职场文书
双方协议书
2014/04/22 职场文书
2015年新农合工作总结
2015/03/30 职场文书
机关单位2016年法制宣传日活动总结
2016/04/01 职场文书
Mysql数据库中datetime、bigint、timestamp来表示时间选择,谁来存储时间效率最高
2021/08/23 MySQL