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 相关文章推荐
jQuery 操作下拉列表框实现代码
Feb 22 Javascript
五个jQuery图片画廊插件 推荐
May 12 Javascript
Javascript图像处理—虚拟边缘介绍及使用方法
Dec 27 Javascript
js判断运行jsp页面的浏览器类型以及版本示例
Oct 30 Javascript
js 显示base64编码的二进制流网页图片
Apr 04 Javascript
Bootstrap基础学习
Jun 16 Javascript
js与jQuery实现checkbox复选框全选/全不选的方法
Jan 05 Javascript
JS设置cookie、读取cookie
Feb 24 Javascript
完美解决node.js中使用https请求报CERT_UNTRUSTED的问题
Jan 08 Javascript
浅析前端路由简介以及vue-router实现原理
Jun 01 Javascript
vue中移动端调取本地的复制的文本方式
Jul 18 Javascript
在vue中使用echarts(折线图的demo,markline用法)
Jul 20 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 对输入信息的进行安全过滤的函数代码
2012/06/29 PHP
微信公众平台DEMO(PHP)
2016/05/04 PHP
php 中奖概率算法实现代码
2017/01/25 PHP
PHP接口类(interface)的定义、特点和应用示例
2020/05/18 PHP
javascript在事件监听方面的兼容性小结
2010/04/07 Javascript
IE6弹出“已终止操作”的解决办法
2010/11/27 Javascript
jQuery遍历Form示例代码
2013/09/03 Javascript
js使用Replace结合正则替换重复出现的字符串功能示例
2016/12/27 Javascript
JQuery Ajax 异步操作之动态添加节点功能
2017/05/24 jQuery
详解Vuejs2.0 如何利用proxyTable实现跨域请求
2017/08/03 Javascript
Easy UI动态树点击文字实现展开关闭功能
2017/09/30 Javascript
node.js的http.createServer过程深入解析
2019/06/06 Javascript
VueJS 取得 URL 参数值的方法
2019/07/19 Javascript
小程序实现tab标签页
2020/11/16 Javascript
微信小程序实现列表左右滑动
2020/11/19 Javascript
[02:41]DOTA2英雄基础教程 谜团
2013/12/10 DOTA
[54:02]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 IG vs VGJ.T
2018/04/03 DOTA
用Python编写生成树状结构的文件目录的脚本的教程
2015/05/04 Python
Python下载懒人图库JavaScript特效
2015/05/28 Python
python中的数据结构比较
2019/05/13 Python
python按修改时间顺序排列文件的实例代码
2019/07/25 Python
解决Django中修改js css文件但浏览器无法及时与之改变的问题
2019/08/31 Python
Python根据服务获取端口号的方法
2019/09/25 Python
python如何写出表白程序
2020/06/01 Python
Python计算信息熵实例
2020/06/18 Python
如何在Win10系统使用Python3连接Hive
2020/10/15 Python
css3过渡_动力节点Java学院整理
2017/07/11 HTML / CSS
css3的transition效果和transfor效果示例介绍
2013/10/30 HTML / CSS
布局和排版教程 纯css3实现图片三角形排列
2014/10/17 HTML / CSS
html5中svg canvas和图片之间相互转化思路代码
2014/01/24 HTML / CSS
大学生职业生涯规划书前言
2014/01/09 职场文书
企业优秀团员事迹材料
2014/08/20 职场文书
成绩单评语
2015/01/04 职场文书
详解Django中 render() 函数的使用方法
2021/04/22 Python
PYTHON 使用 Pandas 删除某列指定值所在的行
2022/04/28 Python
nginx rewrite功能使用场景分析
2022/05/30 Servers