项目中要用到点击手机键盘搜索按钮时,搜索后本地存储写入历史记录,下面写了个简单的本地搜索,效果如下:

CSS部分

<style>/*搜索框样式*/       .fubao-serch {margin: 10px 15px -15px 15px;border-radius: 25px;}/*块状搜索记录*/#spancircle {padding: 5px 5px 25px 5px;}#spancircle div {padding: 10px 15px;line-height: 12px;font-size: 16px;color: #353535;background-color: #F9F9F9;border-radius: 50px;display: inline-table;margin: 4px;border: none;}</style>

HTML部分

<div class="fubao-serch"><div class="mui-input-row mui-search"><input type="search" id="selectzx" class="mui-input-clear" autocomplete="off" placeholder="搜索资讯"></div><div id="spancircle"><!--<div>怎么注册</div>--></div></div>

JS部分

     var max_history = 5; // 存储最大历史数据$("#selectzx").on('keypress', function(e)  {                  var  keycode  =  e.keyCode;                               if(keycode == '13')  { if(document.getElementById("selectzx").value == "") {mui.toast("请输入搜索内容");return;} else {e.preventDefault();                         //请求搜索接口  searchHistory($(this).val());   }                                     }        })var data = localStorage.getItem('data'); //从本地存储中读取数据historydata(JSON.parse(data)); // 渲染数据function searchHistory(_serchtext) {var data = localStorage.getItem('data'); //从本地存储中读取数据if(data) {      var arr = JSON.parse(data); //如果有数据则转换成对象或数组                        } else {      var arr = []; //如果没有数据,则新增一条}    arr.push(_serchtext);removalDuplicate(arr); // 对用户输入值进行处理(去重-筛选)                 localStorage.setItem('data', JSON.stringify(arr)); //将数据写入到本地存储中}// 数组去重-筛选函数function removalDuplicate(arr) {for(var i = 0; i < arr.length; i++) {var arritem = arr[i].trim(); // 去除字符串两端空格// 如果值为空,则不添加if(arritem == '') {arr.splice(i, 1);}if(arritem !== "") {for(var j = i + 1; j < arr.length; j++) {if(arr[i] == arr[j]) {arr.splice(i, 1); //如果第二次输入的值与第一次相同,则添加第二次的值}}}}return arr;}// 渲染数据function historydata(searchArr) {if(searchArr != null) {searchArr.reverse(); //反转,从后往前添加// 遍历出数据if(searchArr.length <= max_history) { //如果存储数据小于等于max_history,则遍历渲染 for(var i = 0; i < searchArr.length; i++) {$('#spancircle').append('<div onclick=\'JacyWindow("FuBaoSouSuoDetil.html?word=' + encodeURI(searchArr[i]) + '&type=0", "FuBaoSou", "搜索")\'>' + searchArr[i] + '</div>');}} else { //否则渲染最大历史记录条数for(var i = 0; i < max_history; i++) {$('#spancircle').append('<div onclick=\'JacyWindow("FuBaoSouSuoDetil.html?word=' + encodeURI(searchArr[i]) + '&type=0", "FuBaoSou", "搜索")\'>' + searchArr[i] + '</div>');}}}/*   $('#spancircle').append('<div class="clear-history">清空×</div>');*/}/*清空历史搜索记录  此方法清空会退出应用程序 清空用户信息 重新登录*//*  $(".clear-history").click(function(event) {event.stopPropagation();localStorage.clear();$("#spancircle").empty();});*/

JS在H5下实现本地历史搜索记录相关推荐

  1. 微信小程序实现历史搜索记录的本地储存和删除

    输入框和搜索按钮表单的wxml,没啥特别的,这里绑定了输入框的输入值,样式我就不放上来了 <form class='searchForm' bindsubmit='searchSubmitFn' ...

  2. uni-app使用setStorageSync存储历史搜索记录,与setStorage区别

    一.setStorageSync与setStorage的区别 都可以将 data 存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容. setStorageSync:同步接口,需要 ...

  3. 微信小程序————搜索框获取本地缓存搜索记录

    微信小程序获取本地缓存的搜索记录 html <!--index.wxml--> //这里是搜索框 <view class="box_search">< ...

  4. Android原生控件SearchView实现历史搜索记录

    SearchView实现搜索记录看了一些大神写的贴子简单实现, 但我们功能 需要单独删除一条历史搜索记录,好像没在网上找到解决方案,原生方法上也只有suggestions.clearHistory() ...

  5. App开发-使用Vue3+Vant组件实现历史搜索记录功能

    使用Vue3+Vant组件实现App历史搜索记录功能 最近在开发一款新的app项目,我自己也是第一次接触app开发,经过团队的一段时间研究调查,决定使用Vue3+Vant前端组件的模式进行开发,vue ...

  6. Android 天气APP(十五)增加城市搜索、历史搜索记录

    上一篇:Android 天气APP(十四)修复UI显示异常.优化业务代码逻辑.增加详情天气显示 添加城市 新版------------------- 一.推荐城市数据 二.推荐城市item布局和适配器 ...

  7. Android常用:手把手教你实现搜索框(含历史搜索记录)

    http://blog.csdn.net/carson_ho/article/details/53366570 前言 像下图的搜索功能在Android开发中非常常见 今天我将手把手教大家如何实现具备历 ...

  8. Android开源实战:SearchView搜索框(含历史搜索记录)

    前言 Android开发中,类似下图的搜索功能非常常见 搜索功能 今天,我将手把手教大家实现一款 封装了 历史搜索记录功能 & 样式 的Android 自定义搜索框 开源库,希望你们会喜欢. ...

  9. 实现历史搜索记录和搜索功能

    uniapp实现搜索功能和搜索历史记录 <template><view class="content"><!-- 搜索引擎 这里是模糊查询,后续会加上 ...

  10. vue 移动端搜索功能(带历史搜索记录)

    实现效果如图: 实现的功能: 1.点击搜索,把搜索的值存入本地记录,并展示 2.搜索相同的值,要删除旧数据,把新数据放进数组首位 3.清空历史记录 html代码: <div class=&quo ...

最新文章

  1. Node.js入门(含NVM、NPM、NVM的安装)
  2. 微信小程序把玩(二十八)image组件
  3. windows redis 客户端_redis高并发的最佳解决方案
  4. python代码_自学Python之后不想去公司上班,教你如何月入10000+,听过来人说
  5. 【codeforces 103E】 Buying Sets
  6. 自省的力量-我看《走出软件作坊》
  7. ShellSort 希尔排序
  8. 【C++面向对象】类的静态成员函数(static member functions)
  9. java打印等腰三角形_Java 后台开发面试题分享三
  10. 在linux用sfdisk和parted 来 进行分区
  11. 构建基于MX1919的超声波阵列驱动板
  12. zoho邮箱收信服务器,配置邮件交付 - Zoho Mail 设置
  13. 激活 出现无法访问制定设备,路径或文件。您可能没有合适的权
  14. html5编写微信留言,HTML5春节(支持微信和填写姓名)祝福所有程序员幸福快乐...
  15. 小程序云开发学习笔记(二)
  16. 宽带认证计费系统的认证技术主要有哪些
  17. 公司股权分配协议范文
  18. 大数据分析——点“数”成金
  19. 《GIT视频教程》(p41~p44)
  20. Chrome调试调试快捷键

热门文章

  1. 【利用Python进行数据分析——经验篇2】计算微博转发/评论/点赞h指数的Python代码
  2. 2021年12月22日 腾讯会议Ipad录屏无法录制声音问题解决
  3. 考研二战日记-第11天——高数2.1 导数概念
  4. 29个最酷的Firefox About:Config配置参数
  5. java基础【十二】外存、内存、CPU、缓存
  6. 人的一生,到底在追求什么?
  7. 迷失lost结局什么意思_迷失 美剧 结局是什么
  8. WordPress系列教程(一)----WordPress环境准备与安装
  9. 求会java的大佬救一下场,领导让研究一个应用信息导出工具的代码实现原理,我之前没系统学过java,来个会的大佬帮忙解释下哈,跪谢...这个如果只是单纯实现抓取包名,应用名称的话代码可以怎么精简呀?
  10. Slf4j与Log4j的区别