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 autocomplete自动完成插件的的使用方法
Aug 07 Javascript
深入理解JavaScript系列(16) 闭包(Closures)
Apr 12 Javascript
asp.net中System.Timers.Timer的使用方法
Mar 20 Javascript
JavaScript中几种排序算法的简单实现
Jul 29 Javascript
关于JS中的apply,call,bind的深入解析
Apr 05 Javascript
老生常谈遮罩层 滚动条的问题
Apr 29 Javascript
JS实现刷新父页面不弹出提示框的方法
Jun 22 Javascript
用js实现每隔一秒刷新时间的实例(含年月日时分秒)
Oct 25 Javascript
详述 Sublime Text 打开 GBK 格式中文乱码的解决方法
Oct 26 Javascript
js 图片转base64的方式(两种)
Apr 24 Javascript
Vue实现底部侧边工具栏的实例代码
Sep 03 Javascript
vue获取元素宽、高、距离左边距离,右,上距离等还有XY坐标轴的方法
Sep 05 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 神盾解密
2014/06/08 PHP
PHP的APC模块实现上传进度条
2015/10/27 PHP
简介WordPress中用于获取首页和站点链接的PHP函数
2015/12/17 PHP
yii的入口文件index.php中为什么会有这两句
2016/08/04 PHP
js Array对象的扩展函数代码
2013/04/24 Javascript
ext前台接收action传过来的json数据示例
2014/06/17 Javascript
JavaScript中的数组特性介绍
2014/12/30 Javascript
Jquery树插件zTree用法入门教程
2015/02/17 Javascript
使用纯javascript实现经典扫雷游戏
2015/04/23 Javascript
跟我学习JScript的Bug与内存管理
2015/11/18 Javascript
JS自定义混合Mixin函数示例
2016/11/26 Javascript
echarts饼图扇区添加点击事件的实例
2017/10/16 Javascript
Angular中使用better-scroll插件的方法
2018/03/27 Javascript
Vue2.0点击切换类名改变样式的方法
2018/08/22 Javascript
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
2018/08/28 jQuery
vue 2.8.2版本配置刚进入时候的默认页面方法
2018/09/21 Javascript
Vue 实时监听窗口变化 windowresize的两种方法
2018/11/06 Javascript
微信小程序 select 下拉框组件功能
2019/09/09 Javascript
uni app仿微信顶部导航条功能
2019/09/17 Javascript
Node.js API详解之 V8模块用法实例分析
2020/06/05 Javascript
[01:46]TI4西雅图DOTA2前线报道 中国选手抱团调时差
2014/07/08 DOTA
详解Python多线程Selenium跨浏览器测试
2017/04/01 Python
Python图片裁剪实例代码(如头像裁剪)
2017/06/21 Python
分享一下如何编写高效且优雅的 Python 代码
2017/09/07 Python
Python+selenium实现自动循环扔QQ邮箱漂流瓶
2018/05/29 Python
python 含子图的gif生成时内存溢出的方法
2019/07/07 Python
python代码 FTP备份交换机配置脚本实例解析
2019/08/01 Python
python列表推导式入门学习解析
2019/12/02 Python
简单聊聊H5的pushState与replaceState的用法
2018/04/03 HTML / CSS
PPP协议组成及简述协议协商的基本过程
2015/05/28 面试题
数学系个人求职信范文
2014/01/30 职场文书
老人再婚离婚协议书范本
2014/10/27 职场文书
2015年骨干教师工作总结
2015/05/26 职场文书
2015年学校少先队工作总结
2015/07/20 职场文书
Python必备技巧之函数的使用详解
2022/04/04 Python
零基础学java之带返回值的方法的定义和调用
2022/04/10 Java/Android