javascript – Vue.js:如何使动态创建的HTML使用作用域的CSS?

前端之家收集整理的这篇文章主要介绍了javascript – Vue.js:如何使动态创建的HTML使用作用域的CSS?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

精简版:

我在组件的方法中使用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,"

您也可以尝试深度选择器,但我自己并不熟悉它们.

https://vue-loader.vuejs.org/en/features/scoped-css.html

原文链接:https://www.f2er.com/js/429150.html

猜你在找的JavaScript相关文章