微信小程序搜索关键字变红

wxml:

  <view class='weui-font'>
        <block wx:for="{{item.title}}" wx:key="*this"  wx:for-item="items">
            <text wx:if="{{items.key == true}}" style="color:red;">{{items.str}}</text>               
            <text wx:else>{{items.str}}</text>
         </block>     
  </view>

js

 value = '环网柜';
 var data = JSON.parse(res.Content).rows;   
      
  // 将标题已关键字拆开成数组    
  for (let i = 0; i < data.length; i++) {
     data[i].title = that.hilight_word(value, data[i].title);
  }           

// 根据搜索字分割字符
  hilight_word: function (key, word) {    
    let idx = word.indexOf(key), t = [];

    if (idx > -1) {
      if (idx == 0) {
        t =this.hilight_word(key, word.substr(key.length));
        t.unshift({ key: true, str: key });
        return t;
      }

      if (idx > 0) {
        t =this.hilight_word(key, word.substr(idx));
        t.unshift({ key: false, str: word.substring(0, idx) });
        return t;
      }
    }
    return [{ key: false, str: word }];
  }

效果如下

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值