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异步请求实例代码
Jun 21 Javascript
Javascript图片上传前的本地预览实例
Jun 16 Javascript
node.js操作mongoDB数据库示例分享
Nov 26 Javascript
AngularJS $injector 依赖注入详解
Sep 14 Javascript
javascript闭包的使用之按钮切换功能
Aug 30 Javascript
关于在vue 中使用百度ueEditor编辑器的方法实例代码
Sep 14 Javascript
vue计算属性computed、事件、监听器watch的使用讲解
Jan 21 Javascript
jQuery实现为table表格动态添加或删除tr功能示例
Feb 19 jQuery
深度了解vue.js中hooks的相关知识
Jun 14 Javascript
React 父子组件通信的实现方法
Dec 05 Javascript
js布局实现单选按钮控件
Jan 17 Javascript
Javascript中window.name属性详解
Nov 19 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实现excel中rank函数功能的方法
2015/01/20 PHP
采用CSS和JS,刚好我最近有个站点要用到下拉菜单!
2006/06/26 Javascript
JS中Iframe之间传值及子页面与父页面应用
2013/03/11 Javascript
JavaScript控制网页平滑滚动到指定元素位置的方法
2015/04/17 Javascript
jquery Validation表单验证使用详解
2020/09/12 Javascript
JS与Ajax Get和Post在使用上的区别实例详解
2016/06/08 Javascript
详解Sea.js中Module.exports和exports的区别
2017/02/12 Javascript
jQuery操作之效果详解
2017/05/19 jQuery
微信小程序picker组件简单用法示例【附demo源码下载】
2017/12/05 Javascript
详解webpack-dev-server使用http-proxy解决跨域问题
2018/01/13 Javascript
用Object.prototype.toString.call(obj)检测对象类型原因分析
2018/10/11 Javascript
Element-ui中元素滚动时el-option超出元素区域的问题
2019/05/30 Javascript
bootstrap table实现iview固定列的效果实例代码详解
2019/09/30 Javascript
JS实现数据动态渲染的竖向步骤条
2020/06/24 Javascript
JavaScript 事件代理需要注意的地方
2020/09/08 Javascript
js+cavans实现图片滑块验证
2020/09/29 Javascript
React实现评论的添加和删除
2020/10/20 Javascript
[01:06:32]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第一局
2016/02/28 DOTA
python中的yield使用方法
2014/02/11 Python
python+selenium实现京东自动登录及秒杀功能
2017/11/18 Python
python字典改变value值方法总结
2019/06/21 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
2019/09/28 Python
通过实例解析Python调用json模块
2019/12/11 Python
Python脚本破解压缩文件口令实例教程(zipfile)
2020/06/14 Python
使用Keras中的ImageDataGenerator进行批次读图方式
2020/06/17 Python
django和flask哪个值得研究学习
2020/07/31 Python
让你相见恨晚的十个Python骚操作
2020/11/18 Python
python使用requests库爬取拉勾网招聘信息的实现
2020/11/20 Python
应聘护士自荐信
2013/10/21 职场文书
舞蹈教育学专业推荐信
2013/11/27 职场文书
渠道运营商合作协议书范本
2014/10/06 职场文书
先进事迹材料范文
2014/12/29 职场文书
实习协议书
2015/01/27 职场文书
母亲节寄语大全
2015/02/27 职场文书
小学校本教研总结
2015/08/13 职场文书
zabbix自定义监控nginx状态实现过程
2021/11/01 Servers