搜索結(jié)果關(guān)鍵字高亮顯示

效果圖:


image.png

html:

<template>
<!-- 搜索框 -->
  <div class="searchBox">
      <div class="inp"><input v-model="keyword" type="text" placeholder="關(guān)鍵詞"></div>
      <img v-if="showCloseBtn" src="../../../../static/img/icons/shanchu.png" class="closeLogo" @click="cleanKeyword" alt="">
      <span @click="findEvent">搜索</span>
  </div>

<!-- 展示 -->
  <div class="clue-box" v-for="(item, index) in list" :key="index">
     <div class="clue-item">
        <div class="text-line-up">
          <div class="company-name"  v-html="item.companyName"></div>
          <div v-if="item.needCut" class="shenglv">...</div>
        </div>
        <div class="text-line-down">
          <div class="contractNo">合同編號:{{item.code}}</div>
          <div class="times">{{item.date}}</div>
        </div>
     </div>
  </div>
</template>

數(shù)據(jù)處理:

const para = {
    id: '20181123001', 
    keyword: '',
    pageNum: 1
}
wx.request({
    url: `xxx`,
    data: para,
    method: 'POST'
}).then( res => {
    console.log(res) // 每個項目返回的數(shù)據(jù)結(jié)構(gòu)不一樣. 自己找到要處理的數(shù)據(jù)
    // 假設(shè) res.data.result 是我要處理的對象組
    if (res.data.result.length !== 0 && this.keyword) { // 帶搜索才進(jìn)行數(shù)據(jù)處理
        res.data.data.result.map((item, index) => {
            const re = new RegExp(this.keyword)
            let newString = ''
            let newname = ''
            // 適配
            if (re.test(item.companyName)) {
              newString = `<span style="color: #FF8C00">${this.keyword}</span>`
              newname = item.companyName.replace(this.keyword, newString)
              item.companyName = newname
            }
        })
    }
})

e.g. keyword 為A, 如果后臺返回的數(shù)據(jù)包括帶有a的話. 再增加一個正則 const re = new RegExp(this.keyword, 'i')

因?yàn)殇秩镜氖莢-html. 富文本. 所有css上設(shè)置的超過的部分為省略號的功能是實(shí)現(xiàn)不了的. 如果需要. 根據(jù)顯示數(shù)據(jù)的長度進(jìn)行判斷,是否需要添加省略號... 給每條數(shù)據(jù)添加一個參數(shù), 用于判斷. 同時給放v-html的div設(shè)置一個最大寬度. 這個寬度 用em, 可以盡量避免字體只顯示一半的尷尬...可如果顯示的結(jié)果是中英文結(jié)合的話, 偶爾還是會有出現(xiàn)的....(如果有更好的處理辦法, 請告訴我!!)
參考代碼: <div v-if="item.needCut" class="shenglv">...</div>

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 概要 64學(xué)時 3.5學(xué)分 章節(jié)安排 電子商務(wù)網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,851評論 0 3
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML標(biāo)準(zhǔn)。 注意:講述HT...
    kismetajun閱讀 28,817評論 1 45
  • 長相思,短相思。思到深處君不知。怨嫌君太癡。 云也癡,月也癡。云月肯送我相思?露華莫打濕。
    流浪詩徒閱讀 525評論 4 20
  • 有水蜜桃的夏天才叫暑假,無錫的。每年都要去無錫發(fā)小那,帶著孩子。夏天是水蜜桃的季節(jié),水水的,甜得不齁,薄薄的一層皮...
    卿瑩閱讀 230評論 0 0
  • 我予你的一紙情書 它顛簸在綠皮信箱里 紙張泛黃 嗯 你從未讀過
    zHaNg雅閱讀 197評論 0 2

友情鏈接更多精彩內(nèi)容