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 相关文章推荐
js中的string.format函数代码
Aug 11 Javascript
jQuery中 noConflict() 方法使用
Apr 25 Javascript
jQuery中val()方法用法实例
Dec 25 Javascript
Jquery日期选择datepicker插件用法实例分析
Jun 08 Javascript
javascript中offset、client、scroll的属性总结
Aug 13 Javascript
js实现正则匹配中文标点符号的方法
Dec 23 Javascript
javascript移动开发中touch触摸事件详解
Mar 18 Javascript
浅谈JavaScript函数的四种存在形态
Jun 08 Javascript
bootstrap 模态框(modal)实现水平垂直居中显示
Jan 23 Javascript
基于JavaScript实现带数据验证和复选框的表单提交
Aug 23 Javascript
浅谈vue项目用到的mock数据接口的两种方式
Oct 09 Javascript
vue中配置scss全局变量的步骤
Dec 28 Vue.js
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
咖啡语言
2021/03/03 咖啡文化
php实现跨域提交form表单的方法【2种方法】
2016/10/17 PHP
子窗口、父窗口和Silverlight之间的相互调用
2010/08/16 Javascript
jquery下将选择的checkbox的id组成字符串的方法
2010/11/28 Javascript
jQuery UI的Dialog无法提交问题的解决方法
2011/01/11 Javascript
JavaScript 基础篇之运算符、语句(二)
2012/04/07 Javascript
javascript基础知识大全 便于大家学习,也便于我自己查看
2012/08/17 Javascript
js 限制input只能输入数字、字母和汉字等等
2013/12/18 Javascript
关闭浏览器输入框自动补齐 兼容IE,FF,Chrome等主流浏览器
2014/02/11 Javascript
高性能JavaScript模板引擎实现原理详解
2015/02/05 Javascript
JS中prototype的用法实例分析
2015/03/19 Javascript
json+jQuery实现的无限级树形菜单效果代码
2015/08/27 Javascript
ionic2自定义cordova插件开发以及使用(Android)
2017/06/19 Javascript
详解Koa中更方便简单发送响应的方式
2018/07/20 Javascript
微信小程序点击保存图片到本机功能
2019/12/13 Javascript
微信小程序图片右边加两行文字的代码
2020/04/23 Javascript
swiper自定义分页器的样式
2020/09/14 Javascript
vue操作dom元素的3种方法示例
2020/09/20 Javascript
nuxt.js服务端渲染中axios和proxy代理的配置操作
2020/11/06 Javascript
[00:59]PWL开团时刻DAY7——我在赶
2020/11/06 DOTA
python实现扫描日志关键字的示例
2018/04/28 Python
python自动发送测试报告邮件功能的实现
2019/01/22 Python
对python生成业务报表的实例详解
2019/02/03 Python
11个Python3字典内置方法大全与示例汇总
2019/05/13 Python
pyenv与virtualenv安装实现python多版本多项目管理
2019/08/17 Python
飞利浦美国官网:Philips美国
2020/02/28 全球购物
一名毕业生的自我鉴定
2013/12/04 职场文书
玲玲的画教学反思
2014/02/04 职场文书
幼儿园法制宣传日活动总结
2014/11/01 职场文书
同意离婚答辩状
2015/05/22 职场文书
2015年秋季小班开学寄语
2015/05/27 职场文书
六五普法心得体会2016
2016/01/21 职场文书
《小乌鸦爱妈妈》教学反思
2016/02/19 职场文书
解决tk mapper 通用mapper的bug问题
2021/06/16 Java/Android
Java基于字符界面的简易收银台
2021/06/26 Java/Android
Python的三个重要函数详解
2022/01/18 Python