返回顶部
首页 > 资讯 > 前端开发 > JavaScript >微信小程序实现搜索关键词高亮的示例代码
  • 778
分享到

微信小程序实现搜索关键词高亮的示例代码

2024-04-02 19:04:59 778人浏览 八月长安
摘要

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

1,前言

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

2,思路

博主第一时间想到的就是使用split,根据搜索的关键词,处理后台返回的数据,然后indexOf找到关键字,给每个字添加deep字段,deep为true,则高亮,为false,则正常。由于是小程序,所以楼主直接做成了一个高亮组件,代码很简单,实现步骤如下。

3,代码逻辑

模拟数据如下


list:[
 '武汉大学',
 '华中科技大学',
 '华中师范大学',
 '中南财经政法大学',
 '中国地质大学',
 '武汉理工大学',
 '华中农业大学',
 '武汉科技大学',
],

在data中定义了一个空数组,用于存放根据搜索key过滤后的数据


filterList:[],//过滤后的

搜索的wxml和方法


// wxml
<view class="search_box">
 <input type="text" placeholder="请输入武汉的985/211大学" bindinput="searchValue" class="search"/>
</view>

// 搜索方法
searchValue(e){
 let val = e.detail.value;
 this.setData({ value:val })
 if(val.length > 0){
  this.setData({ filterList:[] })
  let arr = [];
  for(let i = 0;i < this.data.list.length;i++){
   if(this.data.list[i].indexOf(val) > -1){
    arr.push(this.data.list[i])
   }
  }
  this.setData({ filterList: arr })
 }else{
  this.setData({ filterList: [] })
 }
}

定义了一个高亮组件highlight


"usinGComponents": {
  "highlight":"../../components/highlight/highlight"
 }

在页面中将搜索出来的每一项item和key参数传递给组件


<view class="list_li" wx:for="{{ filterList }}" wx:key="index" data-index="{{ index }}" bindtap="pitchOn">
 <highlight text="{{ item }}" key="{{ value }}" />
</view>

在组件中接收


properties: {
 text:String,
 key:{
  type:String,
  value:'',
  observer:'_changeText'
 }
}

组件的初始数据


data: {
 highlightList:[],//处理后的数据
}

组件的wxml


<text class="{{ item.deep ? 'green' : '' }}" wx:for="{{ highlightList }}" wx:key="index">{{ item.val }}</text>

组件的高亮数据处理


// 非空过滤
 _changeText(e){
  if(e.length > 0 && this.properties.text.indexOf(e) > -1){
   this._filterHighlight(this.properties.text, e);
  }
 },
 
 _filterHighlight(text, key){
  let textList = text.split("");
  let keyList = key.split("");
  let list = [];
  for(let i = 0;i < textList.length;i++){
   let obj = {
    deep:false,
    val:textList[i]
   }
   list.push(obj);
  };
  for(let k = 0;k < keyList.length;k++){
   list.forEach(item => {
    if(item.val === keyList[k]){
     item.deep = true;
    }
   })
  }
  this.setData({ highlightList:list })
 }

源码gitHub地址:https://github.com/pdd11997110103/ComponentWarehouse

到此这篇关于微信小程序实现搜索关键词高亮的示例代码的文章就介绍到这了,更多相关小程序搜索关键词高亮内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 微信小程序实现搜索关键词高亮的示例代码

本文链接: https://lsjlt.com/news/122581.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 微信小程序实现搜索关键词高亮的示例代码
    1,前言 项目中碰到一个需求,搜索数据并且关键词要高亮显示,接到需求,马上开干。先上效果图。源码已经做成了小程序代码片段,放入了GitHub了,文章底部有源码链接。 2,思路 ...
    99+
    2024-04-02
  • 微信小程序搜索关键词高亮怎么实现
    本篇内容介绍了“微信小程序搜索关键词高亮怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!项目中碰到一个需求,微信小程序搜索数据并且关键...
    99+
    2023-06-27
  • wordpress博客搜索关键词高亮显示实现代码
    最近对wordpress的一些小改进很感兴趣,可以让你的博客更加个性,也更有趣味性,下面的代码可以在结果中高亮你所搜索的关键词。首先把第一段代码放在functions.php中: 复制代码代码如下: function h...
    99+
    2022-06-12
    搜索 关键词 高亮显示
  • vue实现搜索关键词高亮的详细教程
    目录正文解析正则api——execreg.exec执行接下来看看执行具体的执行结果提取关键字并分组完整vue代码正文 废话少说先上效果(左侧代码,右侧效果) ...
    99+
    2024-04-02
  • es+flask搜索小项目实现分页+高亮的示例代码
    环境 前端:html,css,js,jQuery,bootstrap后端:flask搜索引擎:elasticsearch数据源:某某之家 项目展示 项目目录 主要源码 获取数据...
    99+
    2024-04-02
  • Android EditText实现关键词批量搜索示例
    今天在项目中用到了用到了一种特殊的EditText,当用户在EditText中输入内容,点击搜索按钮的时候,输入的内容能够高亮,然后添加到输入的容器中。删除的时候,能够将容器中...
    99+
    2022-06-06
    edittext 示例 关键 Android
  • Android实现高亮搜索功能的示例
    目录首先看效果图:使用方法:1、普通场景使用2、在DataBinding中使用首先看效果图: 整词高亮: 分词高亮: 下面贴上我封的方法 fun stringToHig...
    99+
    2024-04-02
  • 微信小程序实现顶部搜索框
    本文实例为大家分享了微信小程序实现顶部搜索框的具体代码,供大家参考,具体内容如下 这是一个最简单的顶部搜索框,代码如下 wxml <view>      <vie...
    99+
    2024-04-02
  • 微信小程序实现简单搜索框
    本文实例为大家分享了微信小程序实现简单搜索框的具体代码,供大家参考,具体内容如下 app.json {   "pages":[     "pages/index/index"   ]...
    99+
    2024-04-02
  • 微信小程序实现搜索框功能
    本文实例为大家分享了微信小程序实现搜索框功能的具体代码,供大家参考,具体内容如下 效果: wxml文件: <view class="search_input" > ...
    99+
    2024-04-02
  • es+flask搜索小项目实现分页和高亮的示例代码怎么写
    这篇文章的内容主要围绕es+flask搜索小项目实现分页和高亮的示例代码怎么写进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!环境前端:html,cs...
    99+
    2023-06-26
  • 微信小程序实现手写签名的示例代码
    目录1.效果图2.相关代码canvas代码js相关在微信小程序上实现手写签名,获取canvascontext新版本和旧版本有点坑,新版本在获取canvas后如果页面有滑动,则签名坐标...
    99+
    2024-04-02
  • 微信小程序如何实现搜索功能
    这篇文章给大家分享的是有关微信小程序如何实现搜索功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。开发需求微信小程序已经是非常火了,而且学习也比较容易,但是对于初学者来说还是一件...
    99+
    2024-04-02
  • 微信小程序实现简单搜索功能
    本文实例为大家分享了微信小程序实现简单搜索功能的具体代码,供大家参考,具体内容如下 搜索效果图 实现功能如下 (1) 未找到商品时显示提示信息,找到商品时显示商品列表 (2) 清空...
    99+
    2024-04-02
  • uniapp实现微信小程序全局分享的示例代码
    目录创建全局分享内容文件引入并全局注册该文件自定义页面分享内容 uniapp 实现微信小程序的全局转发给好友/分享到朋友圈的功能。主要使用 Vue.js 的 全局混入 概念。 下面直...
    99+
    2024-04-02
  • 微信小程序实现发动态功能的示例代码
    目录一、设计所需要的表1、文章表2、评论表3、点赞表二、发布动态1、文本区2、最终发表动态效果3、发布动态代码最近做了一个校园拍卖小程序,想在里面添加一个类似校园圈功能,现在来一步一...
    99+
    2022-11-13
    小程序发动态 微信小程序发动态
  • 微信小程序实现图片处理小工具的示例代码
    目录一、项目展示二、滤镜三、效果图四、动态滤镜一、项目展示 这是一款实用的工具型小程序 共有滤镜、效果图和动态滤镜三个功能 用户可以选择想要处理的图片,设置模糊、怀旧、复古、美白以及...
    99+
    2024-04-02
  • JavaScript如何实现关键字文本搜索高亮显示功能
    这篇文章将为大家详细讲解有关JavaScript如何实现关键字文本搜索高亮显示功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:<!DOCTYPE&nbs...
    99+
    2024-04-02
  • 微信小程序中的搜索功能怎么实现
    微信小程序中的搜索功能可以通过以下步骤实现: 在小程序的页面中添加一个搜索框组件(如或),用户可以在这个搜索框中输入关键字。 ...
    99+
    2024-04-09
    微信小程序
  • 微信小程序云开发实现搜索功能
    微信小程序云开发实现搜索功能,供大家参考,具体内容如下 微信小程序使用云开发实现搜索功能有两种情况,一种是简单的搜索用关键字来查询数据,另一种是模糊查询关于关键字的全部数据查询。废话...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作