微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.jb51.cc/js/429150.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐