vant+vue实现远程搜索和关键字高亮功能

13 篇文章 0 订阅
12 篇文章 0 订阅

实现效果如图:
在这里插入图片描述
逻辑代码如下:

             //html代码
              <van-search 
               v-model="searchVal" 
               shape="round"
               show-action
               @cancel="onCancel"
               @search="onSearch"
               @input="onSearch"
               @focus="onFocus"
               placeholder="搜索快递公司" />
                 <div>
                    <ul class="search-list" v-for="(item, index) in searchList" :key="index">
                        <li  @click.stop="sureCompany(item.name)" v-html= item.value>
                            {{item.value}}
                        </li>
                     </ul>
                  </div>
           
         //执行函数
         onSearch(value){
          this.searchList=[]
           if (value) {
                this.listData.forEach(i=>{
                    //判断遍历是否包含输入字符
                    if(i.name.indexOf(value)!=-1){
                     var newHtml = `<span style="color: #105CFB">${value}</span>`;
                    //实现高亮效果
                     this.searchList.push(i)
                    //替换高亮字段
                     this.searchList.forEach(item => {
                        this.$set(i,'value',i.name)
                        item.value = item.value.replace(value,newHtml)
                      });
                    }
                })
           }
      }, 
      //获取搜索列表函数(这里是模拟数据)
       getListData() {
   	   this.listData=[{name:'申通快递'},{name:'申通快递啊啊啊啊啊'},{name:'圆通'},{name:'韵达'},           {name:'顺丰'},{name:'京东'}]
       },
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值