添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
怕考试的西瓜  ·  VS error c4996: ...·  2 年前    · 

当后端没有提供数据列表的模糊搜索的接口时,我们可以在前端利用JS实现数据列表的模糊搜索功能。

举例说明:当我们需要在部门列表中,实现模糊搜索的功能,这时可以不用走后端接口,我们可以把这些部门列表存放在一个数组中,然后根据用户输入的部门名称在这个数组中模糊搜索。(我们可以把部门列表放入localstorage或者sessionstorage中保存)

注意:localstorage和sessionstorage只能存字符串,不能存对象。

第一步:页面加载后显示部门列表(JS代码,走后端接口获取部门列表并显示,将列表存入localstorage中)

function getDeptListByUserId(){
	$.ajax({
        type: "POST",
        url:"getDeptList.do",
        async:false,
        dataType :"json",
        data: {  	 
        success:function(result){
        	var str = "";
        	var depts = result.dept;
        	localStorage.setItem("deptList", JSON.stringify(depts));
        	for(var i=0;i<depts.length;i++){
        		str +="<li><a>"+depts[i].CC_Name+"<span style=\";\">,"+depts[i].CC_Code+"。"+"</span></a></li>";
        	$("#dptlist").html(str);
        	$("#dptlist li").click(function(){
      		  var test=$(this).text().toString()
      		  var index=test.indexOf(",");
      		  var end=test.indexOf("。");
      		  var dptname;
      		  var dptcode;
      		  if(index!=-1)
      			  dptname=test.substring(0,index);
      		  if(end!=-1)
      			  dptcode=test.substring(index+1,end);
      		  document.getElementById("dptname").value=dptname;
      		  document.getElementById("dptcode").value=dptcode;
      		  $("#myModaldpt").modal('hide');

第二步:获取用户输入的值,进行模糊搜索

HTML代码

<div class="modal-header">
        <button type="button" class="close" data-dismiss="modal"> <span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title mytitle">选择所属部门</h4>
      <div class="modal-body">
        <div id="wrap">
          <div class="product-head"> 部门:
            <div id="formdpt">
               <input id = "deptSerch" oninput="doSearchDept()"/>
            <div class="clear"></div>
          <ul id="dptlist">

思路:我们首先将原本的数据存入到一个数组old_items中,然后再新创建一个新的数组items用于存储搜索到的数据,在遍历第一个数组old_items时,使用正则判断是否包含输入的的内容,如果包括,就将内容push到新数组items中,当一切执行完毕,就遍历items数组取出数据,将原本的内容清空,填充新数据。

JS代码:

function doSearchDept(){
	var deptList=JSON.parse(localStorage.getItem("deptList"));
	var str = "";
	var condition = $("#deptSerch").val();
	var reg = new RegExp(condition);
	var items = [];
	if(condition.length > 0){
		for(var i=0;i<deptList.length;i++){
			var temp = deptList[i].CC_Name;
			if(temp.match(reg)){
				items.push(deptList[i]);
		$(".dptlist").empty;
		for(var i=0;i<items.length;i++){
			str +="<li><a>"+items[i].CC_Name+"<span style=\";\">,"+items[i].CC_Code+"。"+"</span></a></li>";
		$("#dptlist").html(str);
		$("#dptlist li").click(function(){
  		  var test=$(this).text().toString()
  		  var index=test.indexOf(",");
  		  var end=test.indexOf("。");
  		  var dptname;
  		  var dptcode;
  		  if(index!=-1)
  			  dptname=test.substring(0,index);
  		  if(end!=-1)
  			  dptcode=test.substring(index+1,end);
  		  document.getElementById("dptname").value=dptname;
  		  document.getElementById("dptcode").value=dptcode;
  		  $("#myModaldpt").modal('hide');
	}else{
		$(".dptlist").empty;
		for(var i=0;i<deptList.length;i++){
			str +="<li><a>"+deptList[i].CC_Name+"<span style=\";\">,"+deptList[i].CC_Code+"。"+"</span></a></li>";
		$("#dptlist").html(str);
		$("#dptlist li").click(function(){
  		  var test=$(this).text().toString()
  		  var index=test.indexOf(",");
  		  var end=test.indexOf("。");
  		  var dptname;
  		  var dptcode;
  		  if(index!=-1)
  			  dptname=test.substring(0,index);
  		  if(end!=-1)
  			  dptcode=test.substring(index+1,end);
  		  document.getElementById("dptname").value=dptname;
  		  document.getElementById("dptcode").value=dptcode;
  		  $("#myModaldpt").modal('hide');
                    当后端没有提供数据列表的模糊搜索的接口时,我们可以在前端利用JS实现数据列表的模糊搜索功能。举例说明:当我们需要在部门列表中,实现模糊搜索的功能,这时可以不用走后端接口,我们可以把这些部门列表存放在一个数组中,然后根据用户输入的部门名称在这个数组中模糊搜索。(我们可以把部门列表放入localstorage或者sessionstorage中保存)注意:localstorage和session...
				
问题描述:停车场是一个能放n辆车的狭长通道,只有一个大门,汽车按到达的先后次序停放。若车场满了,车要停在门外的便道上等候,一旦有车,则便道上第一辆车进入。当停车场中的车离开时,由于通道窄,在它后面呢的车要先退出,待它后再依次进入。汽车离开时按停放时间收费。 基本功能要求: (1)建立三个数据结构分别是:停放队列、让路栈、等候队列。 (2)输入数据模拟管理过程,数据(入或出,车号)。 停车管理系统是C语言中队列和栈比较简单的应用,需要注意的是停车队列、等候队列、让路栈结构体的构建。在写代码时,出队列入栈和出栈入队列时,指针容易出错而造成段错误,应当注意。我所写的代码如下: //定义结构体
如何实现 模糊搜索 当我们浏览网页的时候,通常能看到搜索栏,这大大的提高了我们获取数据的目的性。 那如何去实现一个简单的模糊搜索 框呢,以下案例获取能给你一点思路。 以下案例,可以实现当按键按下时,自动检索匹配数据 基本css 样式 .row { ​ height: 80px; ​ */\* line-height: 80px; \*/* ​ text-align: left; ​ line-height: 80px; ​ padding-top: 5px; ​ margin-bottom: 10px; ​ .inh { ​ width:
前端本地的模糊搜索原理其实很简单,我写的本地搜索只需要理解 indexOf,filter.这几个就可以了,还要加上监听每次input的触发方法,vue用@input。 1.大概效果就是照着百度的搜索写的 .2.首先点击输入框的时候,不输入的情况下先显示推荐内容 .3.如果输入了内容则显示匹配了的搜索详情区域,如果没有匹配的内容则不显示搜索详情区域
在看BOM的时候,发现一个很有意思的方法find。碰巧最近一个公司让我做一个东西,他想要搜索功能,但是页面却全部都是静态的。哈哈,发现这个真是太好了,赶快来分享一波<!DOCTYPE html> <html lang="en"> <meta charset="UTF-8"> <title>welcome</title> <style> div {
emmm… 由于楼主大四dog准备毕设,没有后台接口又要尽量模拟出功能的原因,就硬着头皮基于vue手撸代码实现前端的搜索功能。 一开始我哈皮地在iview的组件里搜到了具有筛选功能的table表格组件,如下图所示: 可还没等我开心多久就发现它!居然!!在分页模式下只能筛选出当前页的数据눈_눈,也就是说官方提供的这个功能只限于不分页展示的表格筛选。 So,我又想到了要不自己封装一个函数去实现i...
对于模糊查询,一般都是传关键字给后端,由后端来做。但是有时候一些轻量级的列表前端来做可以减少ajax请求,在一定程度上提高用户体验。废话不多说,直接上代码。 字符串方法(indexof): 正则表达式: <div class="aaa"> <el-input placeholder="请输入用户名" v-model="form.name"></el-input> <el-button @click="search()">搜索</el-button>
如果要在 Python 中实现这个题目,可以使用一个字典来存储每个人的信息。每个人都有一个编号,我们可以将编号作为字典的键,将每个人的信息(例如下一个人的编号)作为值存储在字典中。 例如,假设有 4 个人,他们的编号分别是 1、2、3 和 4,那么字典可能长这样: 1: 2, 2: 3, 3: 4, 4: None 这个字典表示 1 号排在 2 号前面,2 号排在 3 号前面,3 号排在 4 号前面,4 号没有人排在他前面。 我们还可以使用另一个字典来存储每个人的前驱编号,例如: 2: 1, 3: 2, 这个字典表示 2 号的前驱是 1 号,3 号的前驱是 2 号,4 号的前驱是 3 号。 然后,我们可以定义两个函数来实现操作 1 和操作 2: def remove(d, d_prev, x): # 把 x 叫 next_x = d[x] d_prev[next_x] = d_prev[x] d[d_prev[x]] = next_x del d[x] del d_prev[x] def find_prev(d, d_prev, x): # 查找排在 x 前面的是谁 return d_prev[x] 在调用 remove 函数时,需要传入两个字典和要叫的人的编号 x。在
let id = setWatermark(str); _interval = setInterval(() => { if (document.getElementById(id) === null) { id = setWatermark(str); }, 500); window.onresize = () => { setWatermark(str); // 移除 watermark.remove = () => { flag = false; var box = document.getElementById(idd); box.parentNode.removeChild(box); _interval ? clearInterval(_interval) : ''; export default watermark; [/code] log4j2 配置 如何将业务日志与定时任务的日志打印到不同的日志文件中 weixin_41685314: 定时任务内调用的mybatis日志并不能打印到定时任务内 还是在主日志文件 Vue项目在页面添加水印功能 爱吃兔子的萝北: 为什么这里要设置循环