JS在H5下实现本地历史搜索记录

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

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();
					
					});*/

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的猜数字游戏和历史记录的示例: ```html <!DOCTYPE html> <html> <head> <title>猜数字游戏</title> </head> <body> <h1>猜数字游戏</h1> <p>请输入一个0到100之间的整数:</p> <input type="text" id="guess"> <button onclick="checkGuess()">猜!</button> <h2>历史记录</h2> <ul id="history"></ul> <script> var answer = Math.floor(Math.random() * 101); // 生成0到100的随机整数作为答案 var guesses = []; // 存储猜测历史记录 function checkGuess() { var guess = parseInt(document.getElementById("guess").value); if (isNaN(guess) || guess < 0 || guess > 100) { // 判断是否为合法整数 alert("请输入0到100之间的整数!"); return; } guesses.push(guess); // 将猜测记录添加到数组中 if (guess === answer) { // 猜对了 alert("恭喜你,猜对了!"); showHistory(); } else if (guess < answer) { // 猜小了 alert("猜小了!"); } else { // 猜大了 alert("猜大了!"); } document.getElementById("guess").value = ""; // 清空输入框 document.getElementById("guess").focus(); // 将光标重新定位到输入框 } function showHistory() { // 显示历史记录 var list = ""; for (var i = 0; i < guesses.length; i++) { list += "<li>第" + (i + 1) + "次猜测:" + guesses[i] + "</li>"; } document.getElementById("history").innerHTML = list; } </script> </body> </html> ``` 这段代码使用了HTML、JavaScript和CSS来创建一个简单的猜数字游戏和历史记录。用户可以输入一个0到100之间的整数来猜测答案,程序会根据猜测结果给出提示,并将猜测历史记录添加到数组中。当猜测正确时,程序会弹出恭喜信息,并将历史记录显示在页面上。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值