字符串某个文字高亮,且可以点击(v-html点击事件无效)

本文介绍了一种使用 Vue.js 实现文本高亮的方法,当文本中包含特定关键字时,该关键字将以特殊样式(如红色)进行突出显示,并且在用户点击高亮关键字时可以触发特定事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<template>
	<div v-html="highLight(text)" @click="handleClick">{{text}}</div>
</<template>>
<script>
	data() {
		return {
			text: '123456'
		}
	},
	methods: {
		highLight(title){
	      // 如果标题中包含,关键字就替换一下
	      const searchWord = 1
	      if(title.includes(searchWord)){
	        title = title.replace(
	            searchWord, 
	            // 这里是替换成html格式的数据,最好再加一个样式权重,保险一点
	            '<span style="color:red!important;"">'+ searchWord +'</span>'
	        )
	        return title
	      }
	      // 不包含的话还用这个
	      else{
	        return title
	      }
	    },
	     handleClick(e) {
	      if (e.target.localName.toLowerCase() === 'span') {
	        console.log('点击了高亮文字');
	      }
	    },
	}
</script

参考文章:http://t.zoukankan.com/henuyuxiang-p-15165906.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值