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 相关文章推荐
通过 Dom 方法提高 innerHTML 性能
Mar 26 Javascript
JS IE和FF兼容性问题汇总
Feb 09 Javascript
3Z版基于jquery的图片复选框(asp.net+jquery)
Apr 12 Javascript
将list转换为json失败的原因
Dec 17 Javascript
AngularJS包括详解及示例代码
Aug 17 Javascript
微信小程序  wx.request合法域名配置详解
Nov 23 Javascript
Vue Socket.io源码解读
Feb 07 Javascript
JS随机数产生代码分享
Feb 24 Javascript
jQuery实现点击自身以外区域关闭弹出层功能完整示例【改进版】
Jul 31 jQuery
详解vue移动端项目的适配(以mint-ui为例)
Aug 17 Javascript
jsonp跨域获取百度联想词的方法分析
May 13 Javascript
微信小程序实现搜索功能并跳转搜索结果页面
May 18 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网站提速三大“软”招
2006/10/09 PHP
smarty模板嵌套之include与fetch性能测试
2010/12/05 PHP
mysql数据库差异比较的PHP代码
2012/02/05 PHP
PHP获取一个字符串中间一部分字符的方法
2014/08/19 PHP
php生成4位数字验证码的实现代码
2015/11/23 PHP
Gambit vs ForZe BO3 第一场 2.13
2021/03/10 DOTA
IE与firefox下Dhtml的一些区别小结
2009/12/02 Javascript
js multiple全选与取消全选实现代码
2012/12/04 Javascript
jQuery实现数字加减效果汇总
2014/12/16 Javascript
使用AngularJS实现可伸缩的页面切换的方法
2015/06/19 Javascript
jquery siblings获取同辈元素用法实例分析
2016/07/25 Javascript
Google 地图事件实例讲解
2016/08/06 Javascript
基于js实现checkbox批量选中操作
2016/11/22 Javascript
Vue+Vux项目实践完整代码
2017/11/30 Javascript
js实现二级菜单点击显示当前内容效果
2018/04/28 Javascript
详解webpack引用jquery(第三方模块)的三种办法
2019/08/21 jQuery
vue项目中使用vue-layer弹框插件的方法
2020/03/11 Javascript
vue el-tree 默认展开第一个节点的实现代码
2020/05/15 Javascript
JavaScript实现沿五角星形线摆动的小圆实例详解
2020/07/28 Javascript
python抓取网页图片并放到指定文件夹
2014/04/24 Python
使用Python生成url短链接的方法
2015/05/04 Python
Python的Twisted框架中使用Deferred对象来管理回调函数
2016/05/25 Python
Python多进程入门、分布式进程数据共享实例详解
2019/06/03 Python
python如何使用jt400.jar包代码实例
2019/12/20 Python
Python socket聊天脚本代码实例
2020/01/02 Python
windows10环境下用anaconda和VScode配置的图文教程
2020/03/30 Python
Python控制台实现交互式环境执行
2020/06/09 Python
CSS实现半透明边框与多重边框的场景分析
2019/11/13 HTML / CSS
html5拖拽应用记录及注意点
2020/05/27 HTML / CSS
英国Lookfantastic中文网站:护肤品美妆美发购物(英国直邮)
2020/04/27 全球购物
高中自我评价分享
2013/12/05 职场文书
中专生自我鉴定范文
2014/02/02 职场文书
销售员岗位职责范本
2014/02/03 职场文书
参观接待方案
2014/03/17 职场文书
行政专员求职信范文
2014/05/03 职场文书
Python基础数据类型tuple元组的概念与用法
2021/08/02 Python