首先,来看下效果图(样式什么的就不必吐槽了哈)

html代码

搜索记录:

//用于保存记录信息

css代码

* {

margin: 0;

padding: 0;

}

input {

border: 0;

vertical-align: middle;

float: left;

}

#searchbox {

width: 300px;

height: 50px;

background: #fff;

margin: 100px auto;

border: 1px solid #ccc;

position: relative;

}

#inpt {

width: 240px;

height: 50px;

outline: none;

text-indent: 10px;

}

#btn {

width: 60px;

height: 50px;

cursor: pointer;

}

/* 历史记录框 */

#historybox {

width: 280px;

padding: 10px 10px 50px;

border: 1px solid #ccc;

position: absolute;

top: 50px;

left: -1px;

/* 隐藏 */

display: none;

}

#historybox h3 {

margin-bottom: 10px;

}

#list {

list-style: none;

}

#list .on {

float: left;

border: 1px solid #ccc;

background: #aaa;

height: 30px;

line-height: 30px;

margin: 0 2px;

border: 1px solid #ccc;

border-radius: 5px;

}

#list .active {

color: #fff;

text-decoration: none;

padding: 2px;

}

js代码(这里需引入jQuery)

$(function () {

let max_history = 7;// 存储最大历史数据

// 鼠标移入事件

$('#inpt').on('focus', function () {

$('inpt').val = '';

let data = localStorage.getItem('data'); //从本地存储中读取数据

if (!data) {

$('#historybox').css('display', 'none');

} else {

$('#historybox').css('display', 'block');

historydata(JSON.parse(data)); // 渲染数据

}

})

// 鼠标移出事件

$('#inpt').on('blur', function () {

$('#historybox').css('display', 'none');

init_history();// 初始化历史记录,清空记录

})

//点击搜索按钮时,将搜索内容添加到本地存储

$('#btn').on('click', function () {

var search = inpt.value;

var data = localStorage.getItem('data'); //从本地存储中读取数据

if (data) {

var arr = JSON.parse(data); //如果有数据则转换成对象或数组

} else {

var arr = []; //如果没有数据,则新增一条

}

arr.push(search);

removalDuplicate(arr);// 对用户输入值进行处理(去重-筛选)

localStorage.setItem('data', JSON.stringify(arr)); //将数据写入到本地存储中

})

// 数组去重-筛选函数

function removalDuplicate(arr) {

for (let i = 0; i < arr.length; i++) {

var arritem = arr[i].trim(); // 去除字符串两端空格

// 如果值为空,则不添加

if (arritem == '') {

arr.splice(i, 1);

}

if (arritem !== "") {

for (let j = i + 1; j < arr.length; j++) {

if (arr[i] == arr[j]) {

arr.splice(i, 1);//如果第二次输入的值与第一次相同,则添加第二次的值

}

}

}

}

return arr;

}

// 渲染数据

function historydata(searchArr) {

searchArr.reverse();//反转,从后往前添加

// 遍历出数据

if (searchArr.length <= max_history) {//如果存储数据小于等于max_history,则遍历渲染

for (let i = 0; i < searchArr.length; i++) {

$('#list').append(`

${searchArr[i]}`);

}

} else {//否则渲染最大历史记录条数

for (let i = 0; i < max_history; i++) {

$('#list').append(`

${searchArr[i]}`);

}

}

}

// 初始化-清空历史记录

function init_history() {

$('#list').html('');

}

})

总结

以上所述是小编给大家介绍的使用JS location实现搜索框历史记录功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

java搜索页面历史记录,使用JS location实现搜索框历史记录功能相关推荐

  1. vue实现搜索框记录搜索历史_使用JS location实现搜索框历史记录功能_苏颜_前端开发者...

    首先,来看下效果图(样式什么的就不必吐槽了哈) 搜索记录: //用于保存记录信息 * { margin: 0; padding: 0; } input { border: 0; vertical-al ...

  2. 【uni-app微信小程序】搜索页面开发,可以保存用户搜索历史,删除历史(简单解释)

    目录 前言 效果展示 主体内容 前言 此篇文章纯代码较多,细节解释,今后会出更加详细的解释 效果展示 保存的内容,可以长按删除,视频时长原因就不一一展示,具体效果如下视频 主体内容 这里one-adv ...

  3. 20150401--Dede+搜索页面,评论

    20150401--Dede+搜索页面,评论 一.在搜索页面完成栏目的取出 思路:取出的数据是顶级栏目,dede_arctype表(栏目表),条件是:父id等于0 reid=0 要注意:我们要取出的数 ...

  4. 【愚公系列】2022年11月 uniapp专题-优购电商-搜索页面

    文章目录 前言 一.搜索页面 1.自定义搜索栏 2.自定义搜索页面 前言 搜索功能在电商领域是非常常见的一个功能具体表现在两个方面: 对用户来说,生鲜电商类的搜索功能通常是用来解决"快速找到 ...

  5. Vue移动端搜索页面的历史记录写法

    Vue移动端搜索页面的历史记录写法 前言 本文用于记录对于搜索页的历史记录的学习. 预览 先上两张图,分别为展示隐藏搜索列表和历史记录. html部分 <template><hips ...

  6. 从一个html页面传值到另一个页面,两个html之间的值传递(js location.search用法)

    从一个html页面传值到另一个页面,两个html之间的值传递(js location.search用法) 转载,点击跳转

  7. java浏览器刷新页面_使用js刷新浏览器页面

    reload 方法,该方法强迫浏览器刷新当前页面. 语法:location.reload([bForceGet])                                            ...

  8. java页面强制刷新,JS关于刷新页面的相关总结

    很多程序员无论是新手还是老的程序员都避免不了关于JS刷新页面的相关内容,在本文中我们整理了脚本之家总结的关于JS页面刷新的相关重要知识点文章,一起来跟着学习下. reload 方法,该方法强迫浏览器刷 ...

  9. 拼多多搜索页面html,爬虫神器pyppeteer,对 js 加密降维打击

    参考文章:html pyppeteer 是对无头浏览器 puppeteer的 Python 封装.无头浏览器普遍用于自动化测试,同时也是一种很好地爬虫思路.前端 使用 puppeteer(等其余无头浏 ...

最新文章

  1. matlab练习程序(高斯牛顿法最优化)
  2. react 调用 html5,React-Native Webview 和H5交互的两种方式
  3. python哈夫曼树_python霍夫曼树
  4. Why product sales area is not replicated to CRM
  5. vertx rest 跨域_在基于简单Vertx Rest的应用程序上为REST资源设置基本响应HTTP标头...
  6. MSSQL 2005 分页分析及优化
  7. tableview直接滚动至最后一行
  8. Linux C基础笔记(1)
  9. Java 初学者建议
  10. 从副高到评正高的条件_大学老师从副高到正高职称有多难?
  11. 服务器amd cpu性能排行,2018年PC处理器性能排行:英特尔9代酷睿被AMD反超!
  12. 【小玩意】锟斤拷语加密器
  13. matlab 求股票斜率,「matlab 求股票斜率」同花顺斜率抓强势股指标公式
  14. 【华为机试】【校招】【Java】机器人走迷宫(DFS)
  15. 解决Powershell前面没有base,无法激活虚拟环境问题
  16. ERD Commander 2005 Boot CD 剖析及汉化试验
  17. twiproxy - 基于GTAP 0.4的twitter API proxy
  18. VBS电脑信息检测器
  19. ubuntu 16.04 编译android 7.1,jack报错
  20. 基于LM334芯片的恒流源调试

热门文章

  1. 数据库的垂直拆分和水平拆分
  2. 威纶通MT8102IE连接变频器实现点动控制
  3. Eclipse Theia技术揭秘——自定义布局
  4. 太原理工大学软件学院数据库实验四(2021.4.26)
  5. Redis-22Redis-集群管理
  6. 交通违章,网上缴纳网站
  7. 我建议,专家不要再建议了
  8. 机器学习 之 感知机(Perceptron)
  9. bugku ctf 简单加密 (e6Z9i~]8R~U~QHE{RnY{QXg~QnQ{^XVlRXlp^XI5Q6Q6SKY8jUAA)
  10. mfc创建excel如何另存为_mfc表格数据保存为excel文件-VC (MFC)如何从对话框写数据到Excel...