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实现
Dec 19 Javascript
JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍
Apr 03 Javascript
Javascript中typeof 用法小结
May 12 Javascript
在ASP.NET MVC项目中使用RequireJS库的用法示例
Feb 15 Javascript
jQuery插件ajaxFileUpload使用实例解析
Oct 19 Javascript
js实现手机拍照上传功能
Jan 17 Javascript
mongoose中利用populate处理嵌套的方法
May 26 Javascript
JS设置手机验证码60s等待实现代码
Jun 14 Javascript
Angular实现模版驱动表单的自定义校验功能(密码确认为例)
May 17 Javascript
Vue2(三)实现子菜单展开收缩,带动画效果实现方法
Apr 28 Javascript
javascript设计模式 ? 备忘录模式原理与用法实例分析
Apr 21 Javascript
简单了解vue 插值表达式Mustache
Jul 22 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
用PHP与XML联手进行网站编程代码实例
2008/07/10 PHP
php学习笔记之面向对象编程
2012/12/29 PHP
PHP模拟asp中response类实现方法
2015/08/08 PHP
Yii2实现同时搜索多个字段的方法
2016/08/10 PHP
php下载文件,添加响应头的简单实例
2016/09/22 PHP
PHP 实现从数据库导出到.csv文件方法
2017/07/06 PHP
PHP数据库编程之MySQL优化策略概述
2017/08/16 PHP
Laravel 对某一列进行筛选然后求和sum()的例子
2019/10/10 PHP
Jquery作者John Resig自己封装的javascript 常用函数
2009/11/09 Javascript
js focus不起作用的解决方法(主要是因为dom元素是否加载完成)
2010/11/05 Javascript
js indexOf()定义和用法
2012/10/21 Javascript
javascript alert乱码的解决方法
2013/11/05 Javascript
Javascript解析URL方法详解
2014/12/05 Javascript
angular指令笔记ng-options的使用方法
2017/09/18 Javascript
vue基于viewer实现的图片查看器功能
2019/04/12 Javascript
优化Vue项目编译文件大小的方法步骤
2019/05/27 Javascript
Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用
2019/11/20 Javascript
JS实现简单的表格增删
2020/01/16 Javascript
[01:09]模型精美,特效酷炫!TI9不朽宝藏Ⅰ鉴赏
2019/05/10 DOTA
Python合并多个Excel数据的方法
2018/07/16 Python
对pandas写入读取h5文件的方法详解
2018/12/28 Python
python 提取key 为中文的json 串方法
2018/12/31 Python
使用GitHub和Python实现持续部署的方法
2019/05/09 Python
Python时间差中seconds和total_seconds的区别详解
2019/12/26 Python
Python实现新型冠状病毒传播模型及预测代码实例
2020/02/05 Python
基于python实现上传文件到OSS代码实例
2020/05/09 Python
Pycharm 2020.1 版配置优化的详细教程
2020/08/07 Python
鲜为人知的HTML5语音合成功能
2019/05/17 HTML / CSS
深入理解HTML的FormData对象
2016/05/17 HTML / CSS
JINS眼镜官方网站:日本最大的眼镜邮购
2016/10/14 全球购物
用你熟悉的语言写一个连接ORACLE数据库的程序,能够完成修改和查询工作
2012/06/11 面试题
办公室副主任职责范本
2014/03/08 职场文书
毕业生捐书活动倡议书
2015/04/27 职场文书
运动会通讯稿300字
2015/07/20 职场文书
酒吧七夕情人节宣传语
2015/11/24 职场文书
Nginx location 和 proxy_pass路径配置问题小结
2021/09/04 Servers