主要原理: <span style="color:red;">关键字</span> ,找到关键字加样式
<!-- 搜索联想建议列表 -->
<div class="sugg-list" v-if="kw.length > 0">
<div
class="sugg-item"
v-for="(Str, index) in sugList"
:key="index"
v-html="lightFn(Str, kw)"
@click="clickFn(Str)"
>
{{ Str }}
</div>
</div>
在所遍历的联想列表,绑定v-html,并传参(整个字符串及要改变的关键字)
// 关键字高亮
lightFn (Str, kw) {
// 使用正则找到str,'ig'忽略大小写
const reg = new RegExp(kw, 'ig')
// 返回一个字符串,str里有return回来的字符串进行替换
return Str.replace(reg, (match) => {
return `<span style='color:red'>${match}</span>`
})
},