vue實現(xiàn)文字檢索時候?qū)⑺阉鲀?nèi)容標紅功能
實現(xiàn)結(jié)果
html:
<div class="searchBox"> <span class="bt">標  題</span> <div class="search"> <div class="shuru"> <!-- <span class="title">生產(chǎn)經(jīng)營</span> --> <input type="請輸入要查詢的內(nèi)容" v-model="searchText" @@keydown.enter="getSearch('btn')"> </div> <div class="btn" @click="getSearch('btn')"> <img src="../../assets/wyc/search.png" alt=""> </div> </div> </div> <span v-html="brightenKeyword(el.filename,searchText)"></span>
搜索框樣式:
.searchBox { height: 70px; display: flex; align-items: center; .bt { font-family: 'pf'; font-size: 18px; color: #000; font-weight: 400; margin-right: 45px; } .search { width: 756px; height: 46px; display: flex; position: relative; .shuru { width: 680px; height: 46px; background: #FFFFFF; border: 1px solid rgba(12, 174, 149, 1); border-radius: 8px 0px 0px 8px; box-sizing: border-box; display: flex; align-items: center; justify-content: space-between; padding: 0 20px; .bt { white-space: nowrap; display: inline-block; } .title { font-family: 'pf'; font-size: 16px; color: #333333; font-weight: 400; padding-right: 7px; white-space: nowrap; border-right: 1px solid #D8D8D8; margin-right: 12px; } input { width: 99%; height: 34px; box-sizing: border-box; border: none; outline: none; font-family: 'pf'; font-size: 16px; color: #333333; font-weight: 400; white-space: nowrap; } } .btn { width: 78px; height: 46px; background: #0CAE95; border-radius: 0px 8px 8px 0px; display: flex; align-items: center; justify-content: center; img { width: 22px; height: 22px; } } .tips { width: 274px; display: flex; // align-items: center; position: absolute; right: -280px; top: 50%; transform: translateY(-50%); img { width: 18px; height: 18px; } span { font-family: 'pf'; font-size: 12px; color: #7a7a7a; font-weight: 400; white-space: wrap; margin-left: 3px; display: none; } &:hover { span { display: block; } } } } }
JavaScript:
data: () => ({ searchText: '', }),
//搜索內(nèi)容的數(shù)據(jù) async getSearch(val) { console.log(val, this.searchText); this.$nextTick(()=>{ this.getIsmDatas() }) }, //獲取需要標紅的文字 getRedWords(contentText, keyword) { let keywordArray = keyword.split(" "); console.log(keywordArray, '有空格的字...'); let wordsArray = []; for (let key of keywordArray) { if (contentText.includes(key)) { wordsArray.push(key) } } // this.changeRedText(contentText,wordsArray) return wordsArray; }, //將文字標紅 brightenKeyword(contentText, keyword) { // debugger var res = contentText // keyword = keyword.replace("+",'') var judgeFn = new RegExp(/\s+/g); //空格的正則 //有加號的時候 if (keyword.includes('+')) { // const Reg = new RegExp("+", 'g'); keyword = keyword.replace("+", '') } //有空格的時候 else if (judgeFn.test(keyword)) { console.log(keyword, "【結(jié)果】:內(nèi)容包含有空格!"); let wordsArray = this.getRedWords(contentText, keyword); for (let word of wordsArray) { if (word != "") { // 設(shè)定需要檢索的模式 const Reg = new RegExp(word, 'g'); //替換每一個相同字 res = res.replace(Reg, `<span style="color: red; font-family: 'pfm';">${word}</span>`); } } return res } // 判斷標題中是否包含關(guān)鍵字 if (contentText.includes(keyword)) { const Reg = new RegExp(keyword, 'g'); res = res.replace(Reg, `<span style="color: red; font-family: 'pfm';">${keyword}</span>`); } return res; //此時的res里已經(jīng)將需要標紅的字體帶上了格式(<span style="color:red"></span>) }, //獲取表格數(shù)據(jù) async getIsmDatas() { let res = await this.$http.get(`/ctrl/ismStudy/getIsmDatas?unitType=${this.unitType}&jobnature=${this.tabOption['code_value']}&jobnatureText=${this.tabOption['code_name']}&page=${this.PageInfo.pagenum}&limit=${this.PageInfo.pagesize}`) if (res && res.status == 200) { this.tableData.tbody = res.data.data.data this.PageInfo.total = res.data.data.count } },
到此這篇關(guān)于vue中實現(xiàn)文字檢索時候?qū)⑺阉鲀?nèi)容標紅的文章就介紹到這了,更多相關(guān)vue搜索內(nèi)容標紅內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue-treeselect無法點擊問題(點擊無法出現(xiàn)拉下菜單)
這篇文章主要介紹了vue-treeselect無法點擊問題(點擊無法出現(xiàn)拉下菜單),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-04-04vuex之this.$store.dispatch()與this.$store.commit()的區(qū)別及說明
這篇文章主要介紹了vuex之this.$store.dispatch()與this.$store.commit()的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06uniapp Vue3中如何解決web/H5網(wǎng)頁瀏覽器跨域的問題
存在跨域問題的原因是因為瀏覽器的同源策略,也就是說前端無法直接發(fā)起跨域請求,同源策略是一個基礎(chǔ)的安全策略,但是這也會給uniapp/Vue開發(fā)者在部署時帶來一定的麻煩,這篇文章主要介紹了在uniapp Vue3版本中如何解決web/H5網(wǎng)頁瀏覽器跨域的問題,需要的朋友可以參考下2024-06-06解決vue3項目打包發(fā)布到服務(wù)器后訪問頁面顯示空白問題
這篇文章主要介紹了解決vue3項目打包發(fā)布到服務(wù)器后訪問頁面顯示空白問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03Vuejs仿網(wǎng)易云音樂實現(xiàn)聽歌及搜索功能
這篇文章主要介紹了Vuejs仿網(wǎng)易云音樂實現(xiàn)聽歌及搜索功能,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-03-03vue cli 3.x 項目部署到 github pages的方法
這篇文章主要介紹了vue cli 3.x 項目部署到 github pages的方法,非常不錯,具有一定的參考借鑒價值 ,需要的朋友可以參考下2019-04-04