vue实现多组关键词对应高亮显示功能


Posted in Javascript onJuly 25, 2019

先上效果图:

 vue实现多组关键词对应高亮显示功能

我们有多组关键词,这里实现了关键词的背景色与匹配值的字体颜色值相同

先拟定一组数据

colors: [
    "#FFB5C5",
    "#EEC900",
    "#D1EEEE",
    "#40E0D0",
    "#FFFF00",
    "#FF7F00",
    "#FF6A6A",
    "#B3EE3A",
    "#9F79EE",
    "#FFC1C1"
   ],
   keywordsdetail: ["好看", "美丽", "wfewf"],
   comments: [
    {
     text: "老师 好看好看222"
    },
    {
     text: "老师美丽11111极了"
    },
    {
     text: "老师太搞笑34234了"
    },
    {
     text: "老师搞笑的不的了"
    },
    {
     text: "老师:ox::beer:wfewf啊"
    }
   ]

我们自定义一些颜色值以及关键词和详情文字

用内联样式的方法设置关键词的不同背景色显示

<span
    v-for="(item,index) in keywordsdetail"
    :key="index"
    class="keyworditem"
    :style="{backgroundColor:colors[index]}"
    @click="showpartkey(index,comments)"
   >{{item}}</span>

下面定义关键词匹配改变字体颜色的方法

changeColor(resultsList, keywords) {
   keywords.map((keyitem, keyindex) => {
    resultsList.map((item, index) => {
     if (keyitem && keyitem.length > 0) {
      // 匹配关键字正则
      let replaceReg = new RegExp(keyitem, "g");
      // 高亮替换v-html值
      let replaceString =
       '<span class="highlight"' +
       ' style="color: ' +
       this.colors[keyindex] +
       ';">' +
       keyitem +
       "</span>";
      resultsList[index].text = item.text.replace(
       replaceReg,
       replaceString
      );
     }
    });
   });

   this.comments = [];
   this.comments = resultsList;
  }

我们主要看这一行

let replaceString = '<span class="highlight"' +' style="color: ' + this.colors[keyindex] + ';">' + keyitem + "</span>";

这里采取了字符串拼接的方法来进行渲染

但如果你写成这样

<span class="highlight">keyitem</span>

然后在css中定义highlight的样式

.highlight {
color:red
}

这样做是不生效的

解释我参考了这位兄弟说的

所以解决方法有以下几种

1.直接去掉css的scoped属性 但是这样做很容易搞乱布局

2.写成以下形式

.aaa >>>.highlight{
color:red
}

3.把样式以字符串拼接的方式插入

这样做的好处是 可以动态设置v-html的样式

总结

以上所述是小编给大家介绍的vue实现多组关键词对应高亮显示功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
用js调用迅雷下载代码的二种方法
Apr 15 Javascript
Javascript URI 解析介绍
Mar 15 Javascript
JS中获取函数调用链所有参数的方法
May 07 Javascript
js点击文本框后才加载验证码实例代码
Oct 20 Javascript
js智能获取浏览器版本UA信息的方法
Aug 08 Javascript
Js 获取、判断浏览器版本信息的简单方法
Aug 08 Javascript
jquery Ajax 全局调用封装实例详解
Jan 16 Javascript
将input框中输入内容显示在相应的div中【三种方法可选】
May 08 Javascript
bootstrap下拉框动态赋值方法
Aug 10 Javascript
小试SVG之新手小白入门教程
Jan 08 Javascript
微信小程序如何调用json数据接口并解析
Jun 29 Javascript
Vue 自适应高度表格的实现方法
May 13 Javascript
微信小程序实现原生步骤条
Jul 25 #Javascript
微信小程序与公众号卡券/会员打通的问题
Jul 25 #Javascript
微信小程序tabBar 返回tabBar不刷新页面
Jul 25 #Javascript
微信小程序与公众号实现数据互通的方法
Jul 25 #Javascript
微信JS-SDK实现微信会员卡功能(给用户微信卡包里发送会员卡)
Jul 25 #Javascript
微信小程序实现收货地址左滑删除
Nov 18 #Javascript
jquery-ui 进度条功能示例【测试可用】
Jul 25 #jQuery
You might like
php注销代码(session注销)
2012/05/31 PHP
php实现网站文件批量压缩下载功能
2015/10/28 PHP
PHP实现更改hosts文件的方法示例
2017/08/08 PHP
jquery中通过过滤器获取表单元素的实现代码
2011/07/05 Javascript
JSP跨iframe如何传递参数实现代码
2013/09/21 Javascript
jquery制作搜狐快站页面效果示例分享
2014/02/21 Javascript
javascript对象的使用和属性操作示例详解
2014/03/02 Javascript
js实现三张图(文)片一起切换的banner焦点图
2015/08/25 Javascript
JS实现兼容性较好的随屏滚动效果
2015/11/09 Javascript
功能强大的Bootstrap组件(结合js)
2016/08/03 Javascript
详解百度百科目录导航树小插件
2017/01/08 Javascript
vue元素实现动画过渡效果
2017/07/01 Javascript
JS中判断某个字符串是否包含另一个字符串的五种方法
2018/05/03 Javascript
jQuery判断自定义属性data-val用法示例
2019/01/07 jQuery
JavaScript实现获取两个排序数组的中位数算法示例
2019/02/26 Javascript
微信小程序开发之左右分栏效果的实例代码
2019/05/20 Javascript
React组件对子组件children进行加强的方法
2019/06/23 Javascript
JavaScript获取某一天所在的星期
2019/09/05 Javascript
解决vue中el-tab-pane切换的问题
2020/07/19 Javascript
python基于queue和threading实现多线程下载实例
2014/10/08 Python
Python获取运行目录与当前脚本目录的方法
2015/06/01 Python
python+matplotlib演示电偶极子实例代码
2018/01/12 Python
django输出html内容的实例
2018/05/27 Python
浅谈python中拼接路径os.path.join斜杠的问题
2018/10/23 Python
Python多进程fork()函数详解
2019/02/22 Python
python使用协程实现并发操作的方法详解
2019/12/27 Python
python圣诞树编写实例详解
2020/02/13 Python
实现ECharts双Y轴左右刻度线一致的例子
2020/05/16 Python
HTML5之SVG 2D入门9—蒙板及mask元素介绍与应用
2013/01/30 HTML / CSS
法学毕业生自我鉴定
2013/11/08 职场文书
初三学生个人自我评定
2014/04/06 职场文书
文案策划求职信
2014/04/14 职场文书
雷锋式好少年事迹材料
2014/08/17 职场文书
中华魂放飞梦想演讲稿
2014/08/26 职场文书
如何起草一份正确的合伙创业协议书?
2019/07/04 职场文书
Python实现将多张图片合成MP4视频并加入背景音乐
2022/04/28 Python