使用js实现input框的模糊搜索

使用简单的js代码就可以实现模糊搜索功能,使用indexOf属性。

json假数据:使用数组包对象的方法,在json中设置了三列数据,分别是:名称,性别和交易额。

[{"name": "虚拟星辰","deal": 420,"sex": 1
}, {"name": "神秘星河","deal": 301,"sex": 2
}, {"name": "灵光闪现","deal": 290,"sex": 1
}, {"name": "微笑的月亮","deal": 468,"sex": 2
}, {"name": "萌猫棉花糖","deal": 105,"sex": 2
}, {"name": "未知的旅行家","deal": 900,"sex": 1
}, {"name": "千变万化","deal": 813,"sex": 1
}, {"name": "梦幻仙境","deal": 742,"sex": 2
}, {"name": "甜点糖果","deal": 609,"sex": 2
}, {"name": "网络风行","deal": 305,"sex": 1
}, {"name": "星星饼干","deal": 1059,"sex": 2
}]

HTML及css样式代码:

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><style>h2 {text-align: center;}input {width: 50%;margin-left: 25%;}.content {font-size: 16px;display: flex;justify-content: space-around;margin-top: 30px;}.monicker {margin-top: 10px;}.gender {margin-top: 10px;text-align: center;}.trades {margin-top: 10px;text-align: center;}</style></head><body><h2>排行榜</h2><input type="text" class="inp" onchange="but()" /><div class="content"><div class="names">姓名<div class="monicker">虚拟星辰</div></div><div class="sexs">性别<div class="gender">男</div></div><div class="trade">交易量<div class="trades">420</div></div></div><script src="js/dim.js"></script></body>
</html>

js代码:

// 声明一个全局变量data来存储从服务器获取的数据 
let data;
let xhr = new XMLHttpRequest();
xhr.open('get', 'js/dim.json', true);
xhr.send();
xhr.onreadystatechange = function() {if (xhr.readyState == 4 && xhr.status == 200) {let text = xhr.responseText;console.log(text);data = JSON.parse(text);console.log(data);// 调用渲染函数list(data);}
};// 封装函数
function list(data) {// 拼接姓名let str = '';// 拼接性别let stre = '';// 拼接交易量let strs = '';str += `<div class="names">姓名</div>`;stre += `<div class="sexs">性别</div>`;strs += `<div class="trade">交易量</div>`;// 遍历数组,拼接内容for (let i = 0; i < data.length; i++) {str += `<div class="monicker">${data[i].name}</div>`;// 使用三元表达式,条件1 判断sex的值是否为1,为1则是男生,否则是女生stre += `<div class="gender">${data[i].sex==1?`男`:`女`}</div>`;strs += `<div class="trades">${data[i].deal}</div>`};// 将拼接好的内容设置到对应的HTML元素中document.getElementsByClassName('names')[0].innerHTML = str;document.getElementsByClassName('sexs')[0].innerHTML = stre;document.getElementsByClassName('trade')[0].innerHTML = strs;
};
// 获取输入框
let inp = document.getElementsByClassName('inp')[0];
console.log(inp);// 绑定onchange事件
function but() {console.log(data, inp.value);// 创建一个空数组用于存储过滤后的数据  var arr = [];// 遍历全局变量data中的数据for (var i = 0; i < data.length; i++) {// 检查数据中name属性是否包含输入框的值if (data[i].name.indexOf(inp.value) >= 0 || data[i].deal.toString().indexOf(inp.value) >= 0) {// 如果包含,则将数据添加到arr数组中arr.push(data[i]);};};// 打印结果console.log(arr);// 渲染页面list(arr);
};

上面的代码是通过假数据中的name和deal交易量来进行模糊搜索。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/34863.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【杂记-浅谈OSPF协议之STUB、NSSA区域】

OSPF协议之STUB、NSSA区域】 一、STUB区域1、STUB区域概述2、STUB区域的特点3、STUB区域的优缺点 二、NSSA区域1、NSSA区域概述2、NSSA区域的特点3、NSSA区域的配置和使用 一、STUB区域 1、STUB区域概述 STUB区域是OSPF协议中的一个特殊区域类型&#xff0c;主要用于网络设计…

学习java第一百一十天

请解释Spring中的事务管理&#xff1f; 事务管理是确保数据完整性和一致性的重要机制。在Spring框架中&#xff0c;事务管理可以通过声明式事务管理或编程式事务管理来实现。声明式事务管理允许我们将事务管理逻辑与业务逻辑分离&#xff0c;让Spring容器自动处理事务的开启、提…

Selenium与PyAutoGUI的联动:一种创新的Web自动化测试方案

在当今的软件开发周期中&#xff0c;自动化测试是确保软件质量和效率的关键步骤。Selenium是广泛使用的Web应用程序自动化测试工具之一&#xff0c;它支持多种编程语言并且能够模拟用户对浏览器的操作。然而&#xff0c;有些测试场景可能超出了Selenium的处理范围&#xff0c;例…

网络安全等级保护测评

网络安全等级保护 《GB17859 计算机信息系统安全保护等级划分准则》 规定计算机信息系统安全保护等级共分五级 《中华人民共和国网络安全法》 “国家实行网络安全等级保护制度。 等级测评 测评机构依据国家网络安全等级保护制度规定&#xff0c;按照有关 管理规范和…

JVM虚拟机的组成

一、为什么要学习 JVM &#xff1f; 1. “ ⾯试造⽕箭&#xff0c;⼯作拧螺丝” &#xff0c; JVM 属于⾯试官特别喜欢提问的知识点&#xff1b; 2. 未来在⼯作场景中&#xff0c;也许你会遇到以下场景&#xff1a; 线上系统突然宕机&#xff0c;系统⽆法访问&#xff0c;甚⾄直…

2024年虚拟现实、图像和信号处理国际学术会议(ICVISP 2024,8月2日-4)

2024年虚拟现实、图像和信号处理国际学术会议&#xff08;ICVISP 2024&#xff09;将于2024年8月2-4日在中国厦门召开。ICVISP 2024将围绕“虚拟现实、图像和信号处理”的最新研究领域&#xff0c; 为来自国内外高等院校、科学研究所、企事业单位的专家、教授、学者、工程师等提…

STM32+HAL+FreeRTOS,已经修改了系统时钟为定时器,为什么还卡死在HAL_Delay()

问题 使用CubeMX创建了STM32的工程&#xff0c;启用了FreeRTOS&#xff0c;使用的是HAL库&#xff0c;运行后发现卡死在HAL_Delay()&#xff0c;修改了Timebase Source后正常了&#xff0c;后来加入了USB&#xff0c;又卡死了&#xff0c;参考这篇文章解决&#xff0c;后来我又…

迁移方案详解|使用YMP从异构数据库迁移到YashanDB

数据迁移简介 01典型场景与需求 在国产化浪潮下&#xff0c;数据库系统的国产化替代成为了一个日益重要的议题&#xff0c;有助于企业降低对外依赖&#xff0c;提升信息安全和自主性。 以Oracle、MySQL为代表的传统关系型数据库管理系统&#xff0c;在企业应用中占据了重要的…

通用VS垂直,个人观点分析。

摘要&#xff1a;随着人工智能技术的飞速发展&#xff0c;大模型的应用场景越来越广泛。在这个背景下&#xff0c;通用大模型和垂直大模型之间的竞争日趋激烈。本文将围绕这两个方向&#xff0c;探讨它们在第一个赛点中的优劣&#xff0c;并给出个人观点。  一、通用大模型 …

SpringMvcの拦截器全局异常处理

一、拦截器 我们在网上发贴子的时候如果没有登录&#xff0c;点击发送按钮会提示未进行登录&#xff0c;跳转到登录页面。这样的功能是如何实现的。 1、 拦截器的作用 Spring MVC 的处理器拦截器类似于Servlet开发中的过滤器Filter&#xff0c;用于对处理器进行预处理和后处理…

服务器卡的情况下,一般会出现什么表现状况?

1、服务器严重丢包&#xff0c;正常的服务器丢包率为0%&#xff0c;若丢包率高于1%则会出现卡的情况。 2、部分用户卡&#xff0c;部分用户不卡&#xff0c;可能由于硬件防火墙造成&#xff0c;部分链路堵塞。 3、另外&#xff0c;上述情况也可能是互联网节点故障造成。

Elasticsearch:has_child 和 has_parent 查询——父子关系查询详解

在 Elasticsearch 中&#xff0c;父子关系查询是一种特殊的查询类型&#xff0c;它允许我们在具有父子关系的文档之间进行关联查询。这种关系在树形结构或者层次化数据模型中尤为常见。Elasticsearch 提供了 has_child 和 has_parent 两种查询类型&#xff0c;用于在这种关系中…

掌握 Postman 监控功能:自动化测试与性能监控的秘诀

掌握 Postman 监控功能&#xff1a;自动化测试与性能监控的秘诀 引言 在现代软件开发中&#xff0c;API 的稳定性和性能至关重要。Postman&#xff0c;作为最受欢迎的 API 开发工具之一&#xff0c;提供了强大的监控功能&#xff0c;帮助开发者自动化测试和监控 API 的运行状…

图书馆借阅表

DDL 用户表 (Users) 图书表 (Books) 图书类别表 (BookCategories) 图书与类别关联表 (BookCategoryRelations) 借阅记录表 (BorrowRecords) 供应商表 (Suppliers) 采购记录表 (PurchaseRecords) CREATE TABLE Users (user_id INT PRIMARY KEY AUTO_INCREMENT,username …

pytorch神经网络训练(VGG-19)

VGG-19 导包 import torchimport torch.nn as nnimport torch.optim as optimimport torchvisionfrom torchvision import datasets, transformsfrom torch.utils.data import DataLoaderimport matplotlib.pyplot as plt 数据预处理和增强 transform transforms.Compose(…

在 Go 中如何让结构体不可比较?

最近我在使用 Go 官方出品的结构化日志包 slog 时&#xff0c;看到 slog.Value 源码中有一个比较好玩的小 Tips&#xff0c;可以限制两个结构体之间的相等性比较&#xff0c;本文就来跟大家分享下。 在 Go 中结构体可以比较吗&#xff1f; 在 Go 中结构体可以比较吗&#xff…

鸿蒙开发HarmonyOS NEXT(一)

最近总听见大家讨论鸿蒙&#xff0c;前端转型的好方向&#xff1f;先入门学习下 目前官方版本和文档持续更新中 一、开发环境 提示&#xff1a;要占用的空间比较多&#xff0c;建议安装在剩余空间多的盘 1、下载&#xff1a;官网最新工具 - 下载中心 - 华为开发者联盟 (huaw…

RTL8305NB从电口模式切换为光口模式

对于RTL8305NB&#xff0c;要从电口模式切换为光口模式&#xff0c;主要操作涉及到PHY page的切换和特定寄存器的配置。以下是详细的操作步骤&#xff1a; PHY Page切换&#xff1a; 首先&#xff0c;需要访问PHY地址8的寄存器31。这个寄存器用于Page的切换。向PHY地址8的寄存…

从删库到还原

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 &#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交给时间 &#x1f3e0; &#xff1a;小破站 从删库到还原 魔法一魔法二魔法三魔法四查看是否开启binlog&#xff0c;且format为row执行以下命…

WAV怎么转mp3?将wav转成MP3的几种方法介绍

WAV怎么转mp3&#xff1f;很多情况下&#xff0c;我们可能需要将高质量的 WAV 文件转换为更小、更兼容的 MP3 文件。例如&#xff0c;你可能想要为你的音乐收藏腾出更多存储空间&#xff0c;或者需要将音频文件上传到联网平台&#xff0c;而这些平台通常对文件大小有严格限制。…