美文网首页
下拉框中搜索词高亮/搜索内容关键字高亮

下拉框中搜索词高亮/搜索内容关键字高亮

作者: 无题syl | 来源:发表于2020-12-31 10:08 被阅读0次
    高亮.png

    关键 名字的显示/下拉框显示用到v-html

    下拉框

          <el-autocomplete ref="search" v-model="key" :fetch-suggestions="querySearch" :trigger-on-focus="false" class="input-button" :class="{ trans: isTrans }" :popper-append-to-body="false" @select="handleSelect" @keyup.native="isTrans = true" @keyup.enter.native="search">
            <ul slot-scope="{ item }">
              <li>
                <span v-html="brightenKeyword(item.value, key)"></span>
              </li>
            </ul>
            <el-button slot="append" :disabled="searching" type="primary" @click="search"><span style="margin-right: 10px">搜</span>索</el-button>
          </el-autocomplete>
    
    

    高亮方法

        //下拉框关键字高亮
        brightenKeyword(val, keyword) {
          const Reg = new RegExp(keyword, 'g')
          if (val) {
            return val.replace(
              Reg,
              `<span style="color: rgba(68,139,255,1)">${keyword}</span>`
            )
          }
        },
    

    搜索内容高亮

    在调用后台接口得到搜索数据时,把数据里的Name字段替换掉

        //视频里关键字高亮
        match(arr) {
          let str = this.key
          str = str
            .replace(/\+/g, '\\+')
            .replace(/\./g, '\\.')
            .replace(/\(/g, '\\(')
            .replace(/\)/g, '\\)')
            .replace(/\^/g, '\\^')
            .replace(/\|/g, '\\|')
            .replace(/\$/g, '\\$')
    
          let reg = `/${str}/g`
    
          for (let i = 0; i < arr.length; i++) {
            let item = arr[i]
            item.lightName = item.Name.replace(
              eval(reg),
              `<span style='color:rgba(44,91,232,1)' >${this.key}</span>`
            )
          }
        },
    

    相关文章

      网友评论

          本文标题:下拉框中搜索词高亮/搜索内容关键字高亮

          本文链接:https://www.haomeiwen.com/subject/cvdloktx.html