网站首页 > 技术文章 正文
示例简介
本文介绍利用JQ实现输入内容过滤搜索数据功能(焦点过滤、空全部显示和模糊过滤等),效果如下:
实现过程
html、css和逻辑代码都有详细的注释,可自行参考。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<style>
*{padding:0;margin:0;}
.search-box{width:300px;margin:30px;}
.search-box .inputSearch{border:1px solid #f2f2f2;padding:10px 15px;width:300px;box-sizing: border-box;}
.search-result{width:100%;background-color: #fff;box-shadow: 0px 3px 20px 0px rgba(13, 40, 80, 0.13);box-sizing: border-box;text-align: left;display:none;}
.search-result .result-box li{height:34px;line-height: 34px;cursor: pointer;padding:0 15px;list-style: none;}
.search-result .result-box li:hover{background-color: #f0f3f6;color: #5494df;}
</style>
</head>
<body>
<div class="search-box">
<input type="text" placeholder="请输入搜索关键字" class="inputSearch" />
<div class="search-result">
<ul class="result-box">
</ul>
</div>
</div>
</body>
<script src="./js/jquery-1.11.1.min.js"></script>
<script>
var list = [{
"name": "晗宝SVANA的小店",
"mongodbID": "611472d6d5a87b1e26ff21c0"
},
{
"name": "晗宝SVANA的小店1",
"mongodbID": "61147536d5a87b1e26ff21c8"
},
{
"name": "晗宝SVANA的小店2",
"mongodbID": "6114875dd5a87b1e26ff21d4"
},
{
"name": "晗宝SVANA的小店3",
"mongodbID": "6108f131d5a8a8763698f74b"
},
{
"name": "晗宝SVANA的小店4",
"mongodbID": "6109f28cd5a8a8763698f75d"
},
{
"name": "晗宝",
"mongodbID": "6109f28cd5a8a8763698f75d"
},
{
"name": "SVANA的小店",
"mongodbID": "6109f28cd5a8a8763698f75d"
}
];
$(function() {
// 输入框触发焦点
$(".inputSearch").focus(function(event) {
searchData(event);
});
// 键盘输入触发
$(".inputSearch").keyup(function(event) {
searchData(event);
});
// 点击数据列表
$(".search-result .result-box").on('click', 'li', function(event) {
event.preventDefault();
var id = event.currentTarget.dataset.id;
$(".inputSearch").val($(this).text());
$('.search-result').css('display', 'none');
});
});
// 搜索函数
function searchData(event) {
// 获取值
var str = $(".inputSearch").val();
// 去空格
str = str.replace(/\s+/g, "");
// 如果是enter键、上下键返回
if (event.keyCode == 13 || event.keyCode == 38 || event.keyCode == 40) {
return false;
}
if (str == '') { // 空搜索显示全部数据
renderData(list);
} else {
var reg = new RegExp(str, 'ig')
var newArr = list.filter(function(obj, index, array) {
return obj.name.match(reg);
});
if (newArr == 0) { // 输入数据不匹配
$('.search-result').css('display', 'none');
return false;
}
renderData(newArr); // 显示过滤数据
}
}
// 渲染搜索列表数据
function renderData(arr) {
$('.search-result').css('display', 'block');
var resultHtml = '';
$.each(arr, function(index, val) {
resultHtml += '<li data-id=' + val.mongodbID + '>' + val.name + '</li>'
});
$(".search-result .result-box").html(resultHtml);
}
</script>
</html>
猜你喜欢
- 2024-09-11 浅析MySQL Join Reorder算法(mysqlinner join)
- 2024-09-11 js 小函数(js函数总结)
- 2024-09-11 Kubernetes 高性能网络组件 Calico 入门教程
- 2024-09-11 jQuery中的clone妙用(jquery.on)
- 2024-09-11 自定义一个"骚气"的jQuery
- 2024-09-11 前端单元测试以及自动化构建入门(前端单元测试是什么)
- 2024-09-11 Python全栈 Web(jQuery 一条龙服务)
- 2024-09-11 jQuery遍历说、详解与示例的结合,轻松搞定这个遍历!
- 2024-09-11 「clickhouse专栏」对标mongodb存储类JSON数据文档统计分析
- 2024-09-11 jQuery实现简易购物车功能(jquery购物车结算页面)
- 02-21走进git时代, 你该怎么玩?_gits
- 02-21GitHub是什么?它可不仅仅是云中的Git版本控制器
- 02-21Git常用操作总结_git基本用法
- 02-21为什么互联网巨头使用Git而放弃SVN?(含核心命令与原理)
- 02-21Git 高级用法,喜欢就拿去用_git基本用法
- 02-21Git常用命令和Git团队使用规范指南
- 02-21总结几个常用的Git命令的使用方法
- 02-21Git工作原理和常用指令_git原理详解
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)