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的cookie插件
Apr 07 Javascript
jQuery为iframe的body添加click事件的实现代码
Apr 07 Javascript
window.open关于浏览器拦截问题分析及解决方法
Feb 05 Javascript
js一般方法改写成面向对象方法的无限级折叠菜单示例代码
Jul 04 Javascript
JS格式化数字保留两位小数点示例代码
Oct 15 Javascript
技术男用来对妹子表白的百度首页
Jul 23 Javascript
浅谈JavaScript中数组的增删改查
Jun 20 Javascript
适用于手机端的jQuery图片滑块动画
Dec 09 Javascript
bootstrap模态框示例代码分享
May 17 Javascript
bootstrap multiselect下拉列表功能
Aug 22 Javascript
js构造函数创建对象是否加new问题
Jan 22 Javascript
微信公众号开发之微信支付代码记录的实现
Oct 16 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 在线翻译函数代码
2009/05/07 PHP
全世界最小的php网页木马一枚 附PHP木马的防范方法
2009/10/09 PHP
PHP入门学习笔记之一
2010/10/12 PHP
php中邮箱地址正则表达式实现与详解
2012/04/24 PHP
header跳转和include包含问题详解
2012/09/08 PHP
php+html5实现无刷新图片上传教程
2016/01/22 PHP
thinkphp5实现微信扫码支付
2019/12/23 PHP
js substring从右边获取指定长度字符串(示例代码)
2013/12/23 Javascript
利用JavaScript检测CPU使用率自己写的
2014/03/22 Javascript
javascript的日期对象、数组对象、二维数组使用说明
2014/12/22 Javascript
javascript中substring()、substr()、slice()的区别
2015/08/30 Javascript
JavaScript 模块的循环加载实现方法
2015/12/13 Javascript
简单谈谈JavaScript的同步与异步
2015/12/31 Javascript
jQuery实现div随意拖动的实例代码(通用代码)
2016/01/28 Javascript
动态创建按钮的JavaScript代码
2016/01/29 Javascript
探讨跨域请求资源的几种方式(总结)
2016/12/02 Javascript
JS中解决谷歌浏览器记住密码输入框颜色改变功能
2017/02/13 Javascript
vue将时间戳转换成自定义时间格式的方法
2018/03/02 Javascript
JSONObject与JSONArray使用方法解析
2020/09/28 Javascript
[46:02]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第二局
2016/02/28 DOTA
python实现分页效果
2017/10/25 Python
Python栈算法的实现与简单应用示例
2017/11/01 Python
使用python生成目录树
2018/03/29 Python
django 将model转换为字典的方法示例
2018/10/16 Python
使用pyecharts生成Echarts网页的实例
2019/08/12 Python
Python解释器以及PyCharm的安装教程图文详解
2020/02/26 Python
python中turtle库的简单使用教程
2020/11/11 Python
python实现代码审查自动回复消息
2021/02/01 Python
年终自我鉴定
2013/10/09 职场文书
新闻学专业职业生涯规划范文:我的人生我做主
2014/09/12 职场文书
2015年幼儿园卫生保健工作总结
2015/05/12 职场文书
入党介绍人意见范文
2015/06/01 职场文书
求职信:会计求职的写作技巧
2019/04/24 职场文书
python实现股票历史数据可视化分析案例
2021/06/10 Python
Java循环队列与非循环队列的区别总结
2021/06/22 Java/Android
python 远程执行命令的详细代码
2022/02/15 Python