全网整合营销服务商

营销型网站+SEO优化+关键词快排=一站式服务

免费咨询热线:15959292472

[钦州seo公司要找久澳]微信小程序开发中怎样实现搜索内容高亮功能

  这次给大家带来微信小程序开发中怎样实现搜索内容高亮功能,微信小程序开发中怎样实现搜索内容高亮功能的注意事项有哪些▼◇,下面就是实战案例•□▽,一起来看一下。

  

需求

  

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

  

代码

  

wxml:

  

<■▲□;view class='homePage'-▲;>
 <●★●•;input bindinput="bindKeyInput"></input>◁•○;
 <□-△-;view wx:for="▲…;{{newJson}}" wx:for-item='•▷□;item' wx:key>
 <rich-text nodes="{{item.name}}"></rich-text> 
 <rich-text nodes="△■;{{item■◆▪.address}}">…▼◁◁;<○●;/rich-text>▼▲○○; 
 <□…-;rich-text nodes="◁★-;{{item…☆●.age}}"></rich-text>◁•▲▼;
 <view wx:if="◇…■■;{{item.aihao}}" wx:for="{{item.aihao}}" wx:for-item='sitem' wx★□○•:key>…△;
 <rich-text nodes="{{sitem}}"></rich-text> 
 </view>
 </view>
</view>

js:

  

//index.js
const 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, "<•★◁;span style='color:red'>" + that■△▷▲.data◇△…★.tempText + "▷■;</span>▲…;"□▼=▪;))
 }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, "<span style='color:red'▷▪;>" + that■◇.data.tempText + "</span>")
 }
 }
 },
 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
 })
 }
})

 

  相信看了本文案例你已经掌握了方法,更多精彩请关注久澳传媒编程栏目其它相关文章!

  推荐阅读:

  

如何使用CDN优化项目加载速度

  

使用Angular单向数据流技巧总结

  以上就是微信小程序开发中怎样实现搜索内容高亮功能的详细内容,更多请关注久澳传媒编程栏目其它相关文章!19 2020.10 [宁波seo公司联系方式]JS实现网页手机音乐播放器歌词同步播放功能代码 本文主要为大家分享一篇原生JS实现网页手机音乐播放器 歌词同步播放的示例,具有很好的参考价值,广州市小程序开发哪家好 seo鍏徃鍥㈤槦 [宁波seo公司联系方式] 希望对大家有所帮助。巴中市小程序开发哪家好一起跟随小编过来

[钦州seo公司要找久澳]微信小程序开发中怎样实现搜索内容高亮功能

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。