精简版:
我在组件的方法中使用HTML生成一个字符串,我无法弄清楚如何使用作用域CSS来设置HTML样式,因为它缺少作用域的数据属性.
版本略长:
我有一个名为highlight的函数,它接受一个字符串并返回一个HTML字符串,其中所有出现的搜索词都被突出显示,意味着被< span class =“match”>包围.但是,由于我是在字符串中手动执行此操作,因此该跨度不会获得我的Vue组件中的作用域CSS需要工作的特殊数据属性,因此我对这些匹配进行样式设置的唯一方法是创建我的CSS没有范围,我不想这样做.是否有更多Vue特定的方式让我这样做?
该函数如下所示:
// Source: https://stackoverflow.com/a/280805/2874789
function highlight(data,search) {
return data.replace(
new RegExp("(" + preg_quote(search) + ")",'gi'),"
(preg_quote只是一个逃避需要转义的东西的函数)
谢谢!
最佳答案
Dynamically Generated Content
DOM content created with v-html are not
affected by scoped styles,but you can still style them using deep
selectors.
似乎没有VueJS特定的方法.听起来你最好的选择是在高亮功能的输出中内嵌样式,或者使用全局类.
function highlight(data,search) {
return data.replace(
new RegExp("(" + preg_quote(search) + ")","
要么
function highlight(data,"
您也可以尝试深度选择器,但我自己并不熟悉它们.