模仿百度搜索框缓存数据,页面效果比较简陋

15 篇文章 0 订阅
11 篇文章 0 订阅

直接上代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		
		                
		                    <div style="width: 50%;height: 50%;margin: 0 auto;">
		                       客户公司 : <input lay-verify="required|title" type="text" id="ocomname" name="ocomname"
		                               placeholder="输入客户公司"  list="listadd" style="width: 100%;height: 50%;margin: 0 auto;">
		                        <datalist id="listadd">
		                           <option></option>
		
		                        </datalist>
		
		                    </div>
		<script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
		
		<script>
			//当鼠标点击文本框启动 判断localStorage中是否存在数据,如果有将他遍历添加在<datalist>中
			  $('#ocomname').focus(function () {
			      //每一次点击清空<datalist>数据
			      $("#listadd").empty();
					
			        if(localStorage.length != 0){//缓存长度不等于0有数据
			              var name = localStorage.getItem("name");//获取
			              var arr = name.split(',');//将字符串已逗号拆分为数组
			              var str = '';
			              for(var i=0;i<10;i++){//遍历数据
			                  if(arr[i]!=''&&arr[i]!=undefined){
			                      str+='<option>'+arr[i]+'<option/>';
			                  }					
			              }
			              $("#listadd").append(str);//添加
					
			        }
					
			  })
			   //鼠标离开更新缓存数据
			  $('#ocomname').blur(function () {//鼠标离开文本框执行
			      var ocomname = $("#ocomname").val();//获取数据
			      if(localStorage.length!=0){//不等于0证明有数据
			             var str = localStorage.getItem('name');
			             var arr = str.split(',');
			             var arrstr = '';
					
			                 arrstr+= ocomname+",";//首先添加最新的
			                 for(var i=0;i<=arr.length;i++){
			                     if(arr[i]!='' && arr[i]!=ocomname&&arr[i]!=''&&arr[i]!=undefined){
			                         arrstr+= arr[i]+',';
			                     }
			                 }
			                localStorage.setItem("name",arrstr);
					
			      }else{//等于空直接添加用户新写的
			          localStorage.setItem("name",ocomname);
			      }
					
			  })
			  //模糊查询
			  $('#ocomname').keyup(function () {
			      $("#listadd").empty();//删除<option>中的数据
			      var ocomname = $("#ocomname").val();//获取数据
			      if(ocomname == ''){
			          return;
			      }
			      var str = localStorage.getItem("name");//获取缓存中的数据
			      var arr = str.split(",");
			      var shu = 0;
			      for(var i=0;i<=arr.length;i++){
			          if(arr[i]!=''&&arr[i]!=undefined){
			              if(arr[i].indexOf(ocomname) !=-1){
			                  shu++;
			                  $("#listadd").append('<option>'+arr[i]+'</option>');
			              }
			              if(shu>=10){
			                  return;
			              }
			          }
					
			      }
					
			  })
		</script>
		   
	</body>
</html>

实现的效果html很简陋在这里插入图片描述关于localStorage的一些方法介绍和使用下面这篇文章写的很详细
点击查看localStorage方法介绍

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值