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 相关文章推荐
基于MVC3方式实现下拉列表联动(JQuery)
Sep 02 Javascript
js的flv视频播放器插件使用方法
Jun 23 Javascript
jQuery实现响应鼠标背景变化的动态菜单效果代码
Aug 27 Javascript
js 模仿锚点定位的实现方法
Nov 19 Javascript
node.js+jQuery实现用户登录注册AJAX交互
Apr 28 jQuery
JS+HTML5实现图片在线预览功能
Jul 22 Javascript
Servlet3.0与纯javascript通过Ajax交互的实例详解
Mar 18 Javascript
JavaScript 对引擎、运行时、调用堆栈的概述理解
Oct 22 Javascript
cocos2dx+lua实现橡皮擦功能
Dec 20 Javascript
详解关于表格合并span-method方法的补充(表格数据由后台动态返回)
May 21 Javascript
微信小程序 checkbox使用实例解析
Sep 09 Javascript
一篇文章弄清楚Ajax请求的五个步骤
Mar 17 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/05/07 PHP
PHP判断JSON对象是否存在的方法(推荐)
2016/07/06 PHP
ThinkPHP实现分页功能
2017/04/28 PHP
laravel在中间件内生成参数并且传递到控制器中的2种姿势
2019/10/15 PHP
php中array_fill函数的实例用法
2021/03/02 PHP
学习jquery必备 api中英文对照的chm手册 下载
2007/05/03 Javascript
js控制div及网页相关属性的代码
2009/12/19 Javascript
jquery获取input表单值的代码
2010/04/19 Javascript
jQuery探测位置的提示弹窗(toolTip box)详细解析
2013/11/14 Javascript
下拉列表select 由左边框移动到右边示例
2013/12/04 Javascript
改变隐藏的input中value值的方法
2014/03/19 Javascript
javascript使用Promise对象实现异步编程
2016/03/01 Javascript
js贪吃蛇游戏实现思路和源码
2016/04/14 Javascript
JS对HTML表格进行增删改操作
2016/08/22 Javascript
Spring Boot+AngularJS+BootStrap实现进度条示例代码
2017/03/02 Javascript
不得不看之JavaScript构造函数及new运算符
2017/08/21 Javascript
JS实现匀加速与匀减速运动的方法示例
2017/09/04 Javascript
深入理解Vue router的部分高级用法
2018/08/15 Javascript
vue实现pdf导出解决生成canvas模糊等问题(推荐)
2018/10/18 Javascript
深入了解js原型模式
2019/05/30 Javascript
解决vue项目input输入框双向绑定数据不实时生效问题
2020/08/05 Javascript
[51:44]2018DOTA2亚洲邀请赛 4.3 突围赛 Optic vs iG 第二场
2018/04/04 DOTA
Python THREADING模块中的JOIN()方法深入理解
2015/02/18 Python
Python3实现腾讯云OCR识别
2018/11/27 Python
解决Python下json.loads()中文字符出错的问题
2018/12/19 Python
Python QQBot库的QQ聊天机器人
2019/06/19 Python
python 实现仿微信聊天时间格式化显示的代码
2020/04/17 Python
Python中实现输入一个整数的案例
2020/05/03 Python
python破解同事的压缩包密码
2020/10/14 Python
阿里巴巴国际站:Alibaba.com
2016/07/21 全球购物
Keds加拿大官网:购买帆布运动鞋和皮鞋
2019/09/26 全球购物
电大毕业生自我鉴定
2014/04/10 职场文书
人大代表选举标语
2014/10/07 职场文书
教师培训学习心得体会
2016/01/21 职场文书
护士工作心得体会
2016/01/25 职场文书
超越Nginx的Web服务器caddy优雅用法
2022/06/21 Servers