1.实现效果

2.实现原理

1.将搜索的值与列表中的每一项进行对比,如果那一项indexOf(搜索值)!=-1,则表示这项中含有该关键字,处理列表,为这一项设置相应的属性。
2.split将字符串和搜索值拆分成数组,循环数组。

3.实现代码

<view class="head flex-row"><view class="head_input"><image src="/img/search_icon.png" class="search_icon"></image><input type="text" placeholder="搜索" placeholder-class="place_holder" bindinput="getValue" value="{{search}}"></input></view><view class="sha_icon" catchtap="clear_input">取消</view>
</view>
<view class="con"><view class="item" wx:for="{{ filterList }}" wx:key="index" data-index="{{ index }}"><text wx:for="{{item.list}}" class="{{i0.set &&'ative'}}" wx:key="idx" wx:for-item="i0">{{i0.val}}</text></view>
</view>
/* pages/jsCase/keyWordHight/index2.wxss */
.head {position: fixed;top: 0;left: 0;width: 100%;height: 90rpx;box-sizing: border-box;padding: 0 20rpx;background: #fff;
}.head_input {position: relative;flex: 1;margin-left: 12rpx;
}.search_icon {position: absolute;top: 50%;left: 0;margin-top: -15rpx;width: 28rpx;height: 30rpx;padding-left: 23rpx;
}.head input {height: 60rpx;padding-left: 75rpx;font-size: 28rpx;border-radius: 30rpx;background: #F5F5F5;
}.place_holder {font-size: 28rpx;color: #999999;
}.sha_icon {margin-left: 18rpx;font-size: 28rpx;color: #333333;
}.con {padding-top: 90rpx;margin: 0 20rpx;
}.item {border-bottom: 1rpx solid rgb(241, 239, 239);padding: 20rpx 0;font-size: 28rpx;color: #333333;
}.item:last-child {border-bottom: none;
}.ative {color: rgb(76, 156, 221);
}
// pages/jsCase/keyWordHight/index2.js
Page({/*** 页面的初始数据*/data: {search: "",filterList: [],list: [{name: " 上海"},{name: " 江苏"},{name: " 江苏南京"},{name: " 江苏宿迁"},{name: " 江苏苏州"},{name: " 四川"},]},getValue(e) {let val = e.detail.value;this.setData({ search: val })if (val.length > 0) {let arr = [];for (let i = 0; i < this.data.list.length; i++) {if (this.data.list[i].name.indexOf(val) > -1) {arr.push({ name: this.data.list[i].name })}}this.setData({ filterList: arr, }, () => {this.getHighlight(arr, val)})} else {this.setData({ filterList: [], })}},/*** 关键字高亮处理* @param { String } datalist - 文本* @param { String } val - 关键字*/getHighlight(datalist, val) {datalist.forEach(item => {let textList = item.name.split("");let keyList = val.split("");let list = [];for (let i = 0; i < textList.length; i++) {let obj = {set: false,val: textList[i]}list.push(obj);};for (let k = 0; k < keyList.length; k++) {list.forEach(i0 => {if (i0.val === keyList[k]) {i0.set = true;}})}item.list = list;});this.setData({filterList: datalist})},clear_input() {this.setData({search: "",filterList: []})}
})

4.写在最后

看完本文如果觉得有用,记得点赞+关注+收藏鸭

微信小程序实现关键词高亮相关推荐

  1. 微信小程序--搜索关键词高亮

    代码地址如下: http://www.demodashi.com/demo/14249.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.c ...

  2. 微信小程序搜索关键词高亮效果(转)

    目录结构 search.html页面 <view class="search"><input focus='auto' bindinput="searc ...

  3. 微信小程序实现代码高亮

    预览 老规矩,先上效果图. 看起来效果还不错,实名感谢 日出一点一 这位小哥的教程. 因为,当搜索 微信小程序实现代码高亮 后,结果基本都是 微信小程序搜索,关键词高亮 这一类的.Onz ,这可真是在 ...

  4. 打造热门微信小程序:关键词排名提升的关键因素

    打造热门微信小程序并提升关键词排名的关键因素有很多.以下是一些重要的因素,你可以考虑它们来优化你的微信小程序: 1. 关键词优化:选择合适的关键词,并在小程序的标题.描述.标签.内容中合理地运用.确保 ...

  5. PHP“动能”运动膳食微信小程序的开发 计算机毕业设计源码504978

    摘 要 近年来,随着移动互联网的快速发展,电子商务越来越受到网民们的欢迎,电子商务对国家经济的发展也起着越来越重要的作用.简单的流程.便捷可靠的支付方式.快捷畅通的物流快递.安全的信息保护都使得电子商 ...

  6. 使用VS Code开发微信小程序

    使用VS Code开发微信小程序 微信开发工具 结构 缺点 VS Code VS Code 下载插件 Chinese 小程序开发助手 Easy less minapp vscode wxml wech ...

  7. 微信小程序实现搜索关键词高亮

    目录 1,前言 2,思路 3,代码逻辑 1,前言 项目中碰到一个需求,搜索数据并且关键词要高亮显示,接到需求,马上开干.先上效果图.源码已经做成了小程序代码片段,放入了GitHub了,文章底部有源码链 ...

  8. 微信小程序新增推广功能,支持自定义关键词

    为方便用户找到所需小程序,并帮助小程序更准确地触达用户,微信小程序向开发者提供了自定义关键词的功能.小程序后台新增推广功能,支持开发者添加与业务相关的自定义关键词.开发者可在小程序后台的 " ...

  9. 微信小程序 实时搜索并高亮关键字

    微信小程序实现实时搜索并高亮关键字的功能效果 一.效果图 二.实现流程: 1.在文本框中输入关键字key,如"比赛",检索出比赛相关的列表 key = 小程序 2.处理结果列表:在 ...

最新文章

  1. 格式化输入输出(待更新)
  2. python布局管理_PyQt5每天必学之布局管理
  3. 开源组件ExcelReport 1.5.2 使用手册
  4. java 连接 postgresql_java如何连接数据库并对其操作(以PostgreSQL为例)
  5. android gridview 按钮事件处理,Android TV gridview 的按键事件响应巧变 事件分发机制...
  6. Bootstrap3 全局样式
  7. java自定义tag,tag文件与tag标记,java自定义标签
  8. [转]CentOS设置服务开机自动启动
  9. APICloud发布低代码开发平台
  10. App 抓包工具一(Charles)
  11. cad两直线相交画圆弧_cad制图中两个圆相交于一条直线怎么画
  12. 剑指 Offer 32-I/32-II/32-III从上到下打印二叉树c++
  13. 【火灾疏散建模】基于MATLAB的火灾人员疏散建模编程和仿真分析
  14. api 与 implement 的区别
  15. Python3 语音识别谷歌验证码
  16. Windows ToolTips简要介绍
  17. 【备战蓝桥杯】USACo-- airpro【改变策略】
  18. opencv计算图像亮度调节_opencv调整图像亮度对比度
  19. 从键盘任意输入一个4位数n c语言,c语言编程题
  20. 使用IText画复杂布局的页面

热门文章

  1. 轮训数据库,WebSocket的前身方案:轮训API设计思路
  2. MIUI8去广告攻略
  3. 如何把企业内部碎片信息系统化?
  4. BSC,MSC,HLR的作用
  5. Word 插入内容表格不换页
  6. 三菱FX3U与东元Teco变频器N310通讯实战程序
  7. dede插件-包含SEO所有功能的dede插件
  8. linux内核源码合并升级,Linux内核升级
  9. 2020云盘点:公有云芯基建,AWS、阿里云、紫光云等创新发力
  10. php .p8推送,PHPCMS实现自动推送URL到百度站长平台