本文介绍: 在做文字处理项目时经常会遇到搜索文字高亮需求,常见的实现方式插入标签和贴标签两种。这两种方式用于不同的场景,各有优劣。为了方便操作,直接起一个Vue项目,在里面演示。
watch(
  () => route,
  (newValue) => {
    searchDetail.value.searchValue = route.query.text;
    searchList.value.forEach((item: object, index: number) => {
      montagePFun(item, index);
    });
  },
  {
    deep: true
  }
);
const montagePFun = (info, index) => {
  const regExp = new RegExp(searchDetail.value.searchValue, 'g');
  let title = searchList.value[index].title.replaceAll(regExp, `<span style="color: #FE8549;">${searchDetail.value.searchValue}</span>`);
  let user = searchList.value[index].userName.replaceAll(regExp, `<span style="color: #FE8549;">${searchDetail.value.searchValue}</span>`);
  let content = searchList.value[index].content.replaceAll(regExp, `<span style="color: #FE8549;">${searchDetail.value.searchValue}</span>`);
  document.querySelector(`.title${index}`).innerHTML = title;
  document.querySelector(`.user${index}`).innerHTML = user;
  document.querySelector(`.content${index}`).innerHTML = content;
};

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注