做出全局搜索代码并高亮

这次给大家带来做出全局搜索代码并高亮,做出全局搜索代码并高亮的注意事项有哪些,下面就是实战案例,一起来看一下。

需求

最近在做微信小程序的时候,需要实现在搜索框的输入内容的时候实现全局匹配实现高亮效果,目前的思路是,递归后台来返回的数据,并将对象的value值替换为需要的dom节点,并且通过rich-text来实现,高亮效果。

代码

wxml:

                                      

登录后复制

js:

//index.jsconst app = getApp()Page({  data: {    json: [{ name: 'eiolewkfp', age: 'awdqwwdk', address: 'aueifwhefwfheffoewjowef',aihao:['sdsd','sdfsd','sdsf']}, { name: '98797', age: '6544656', address: '65494364' }], // 可以是任何类型的数据    newJson: '',    tempText:''  },  onLoad: function (options) {    this.setData({      newJson:this.data.json    })  },  digui: function (newJson,obj,key) { // 递归方法,来遍历最内层的字符串并通过正则来替换    var that = this;    var reg = new RegExp(that.data.tempText,'g');    if (newJson.constructor == Array) {       newJson.forEach(function (item,index) {        if (item.constructor == String){          obj[key].splice(index, 1, item.replace(reg, "" + that.data.tempText + ""))        }else{          that.digui(item, newJson);        }      });    } else if (newJson.constructor == Object) {      var json = {};      for (var key in newJson) {        json[key] = newJson;        that.digui(newJson[key],newJson,key);      }    } else if (newJson.constructor == String) { // 这里做全局替换      if(key){        obj[key] = newJson.replace(reg, "" + that.data.tempText + "")      }    }  },  bindKeyInput: function (e) { // 每次输入来监听键盘,处理匹配的数据    var text = e.detail.value;    this.setData({      tempText:text    })    var newJson = JSON.parse(JSON.stringify(this.data.json)); // 实现深复制        this.digui(newJson);    this.setData({      newJson:newJson    })  }})

登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

webpack4.0打包优化策略整理小结_javascript技巧

键值字符串转为json字符串的JS方法

以上就是做出全局搜索代码并高亮的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2769815.html

(0)
上一篇 2025年3月8日 12:26:28
下一篇 2025年2月23日 17:10:16

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 怎么隐藏js代码

    这次给大家带来怎么隐藏js代码,隐藏js代码的注意事项有哪些,下面就是实战案例,一起来看一下。 好了,我们来看下代码吧。 (function(window) { var rep = { // 替换用的数据,使用了4个零宽字符,数据量减少了一…

    编程技术 2025年3月8日
    200
  • jQuery实现弹窗效果(附代码)

    这次给大家带来jQuery实现弹窗效果(附代码),jQuery实现弹窗效果的注意事项有哪些,下面就是实战案例,一起来看一下。 这里利用jquery实现两种弹窗效果: 1. 淡入弹窗效果: www.jb51.net jQuery弹窗 *{pa…

    2025年3月8日
    200
  • jquery实现轮播图(附代码)

    这次给大家带来jquery实现轮播图(附代码),jquery实现轮播图的注意事项有哪些,下面就是实战案例,一起来看一下。 轮播图: 接触jquery也有一段时间了,今天刚好利用轮播图来练练手。博文的前面会介绍一个简单用jquery做轮播图的…

    2025年3月8日 编程技术
    200
  • JSON对象使用案例(附代码)

    这次给大家带来JSON对象使用案例(附代码),JSON对象使用的注意事项有哪些,下面就是实战案例,一起来看一下。 前面的话   json(javascript object notation)全称是javascript对象表示法,它是一种数…

    编程技术 2025年3月8日
    200
  • jQuery做出可编辑表格(附代码)

    这次给大家带来jQuery做出可编辑表格(附代码),jQuery做出可编辑表格的注意事项有哪些,下面就是实战案例,一起来看一下。 <!DOCTYPE html jq2—可以编辑的表格 <%—-%> 鼠标点击表格项就可以…

    编程技术 2025年3月8日
    200
  • Ajax+PHP进行数据交互(附代码)

    这次给大家带来Ajax+PHP进行数据交互(附代码),Ajax+PHP进行数据交互的注意事项有哪些,下面就是实战案例,一起来看一下。 PHP是一种创建动态交互性站点的服务器端脚本语言,优势:PHP脚本语言应用广泛,开源免费,最重要的是入门简…

    2025年3月8日 编程技术
    200
  • Ajax+Struts2接收数组表单(附代码)

    这次给大家带来Ajax+Struts2接收数组表单(附代码),Ajax+Struts2接收数组表单的注意事项有哪些,下面就是实战案例,一起来看一下。 下面我将通过普通表单和ajax两种方式讲解。首先我们有如下一个实体,一个action和一个…

    编程技术 2025年3月8日
    200
  • ajax实现三级联动(附代码)

    这次给大家带来ajax实现三级联动(附代码),ajax实现三级联动的注意事项有哪些,下面就是实战案例,一起来看一下。 1.首先在一个页面上布置一个p 方便日后引用方法 //p的id为“sanji” 登录后复制 2.sanji js处理页面 …

    编程技术 2025年3月8日
    200
  • jquery实现div拖拽效果功能(附代码)

    这次给大家带来jquery实现div拖拽效果功能(附代码),jquery实现div拖拽效果功能的注意事项有哪些,下面就是实战案例,一起来看一下。 无标题文档#Drigging {width:200px;background:#CCC;bor…

    编程技术 2025年3月8日
    200
  • jquery背景图片切换(附代码)

    这次给大家带来jquery背景图片切换(附代码),jquery背景图片切换的注意事项有哪些,下面就是实战案例,一起来看一下。 (function(){ var bgCounter = 0, backgrounds = [ “Images/B…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论