当前位置: 首页 > 面试题库 >

在JavaScript / jQuery中解析CSS

鲁浩渺
2023-03-14
问题内容

我正在尝试在JavaScript中实现CSS的解析,以便:

a {
  color: red;
}

被解析为对象:

{
  'a' {
    'color': 'red'
  }
}

首先,有没有可以使用的JavaScript / jQuery

我的实现是非常基本的,因此我确信它绝对不是万无一失的。例如,它对于基本CSS可以正常工作,但对于以下类型的属性可以正常工作:

background: url(data:image/png;base64, ....);

失败是因为我split(';')要分开property:value成对使用。在这里,;发生在中value,因此它也会在该点分裂。

是否有其他方法可以做到这一点?

这是代码:

parseCSS: function(css) {
    var rules = {};
    css = this.removeComments(css);
    var blocks = css.split('}');
    blocks.pop();
    var len = blocks.length;
    for (var i = 0; i < len; i++)
    {
        var pair = blocks[i].split('{');
        rules[$.trim(pair[0])] = this.parseCSSBlock(pair[1]);
    }
    return rules;
},

parseCSSBlock: function(css) { 
    var rule = {};
    var declarations = css.split(';');
    declarations.pop();
    var len = declarations.length;
    for (var i = 0; i < len; i++)
    {
        var loc = declarations[i].indexOf(':');
        var property = $.trim(declarations[i].substring(0, loc));
        var value = $.trim(declarations[i].substring(loc + 1));

        if (property != "" && value != "")
            rule[property] = value;
    }
    return rule;
},

removeComments: function(css) {
    return css.replace(/\/\*(\r|\n|.)*\*\//g,"");
}

谢谢!


问题答案:

有一个用Javascript编写的CSS解析器,称为JSCSSP



 类似资料:
  • 问题内容: 我想解析JavaScript中的JSON字符串。响应就像 我怎样才能获得的值,并从这个? 问题答案: 在JavaScript中解析JSON的标准方法是 该API是在ES5(2011)中引入的,此后按市场份额和Node.js在超过99%的浏览器中已实现。它的用法很简单: 唯一无法使用的时间是您是否在为旧版浏览器编程,例如IE 7(2006),IE 6(2001),Firefox 3(20

  • 问题内容: 我是Jquery,Ajax和JSON的新手。我在解析Json数据时遇到问题。我在Stackoverflow上遇到了很多问题 解析HTML表的JSON对象 访问/处理(嵌套的)对象,数组或JSON 在JavaScript中解析JSON? 如何在JQuery中解析此JSON对象? 还有很多… 我仍然无法解析Json数据。 我的Jquery看起来像: 我已经尝试了所有组合来解析此数据,但是j

  • 问题内容: 我想解析JavaScript中的JSON字符串。响应就像 我怎样才能获得的值,并从这个? 问题答案: 在JavaScript中解析JSON的标准方法是 JSON.parse() 该JSONAPI是在ES5(2011)中引入的,此后按市场份额和Node.js在超过99%的浏览器中已实现。它的用法很简单: 唯一无法使用的时间是你是否在为旧版浏览器编程,例如IE 7(2006),IE 6(2

  • 我通过Javascript调用一个帖子请求,看起来是这样的, 我试图收回这样的价值观, 这是返回为空,我怎么能从PHP中的获取后请求检索值。谢啦

  • 问题内容: 如何使用jQuery解析此json? 问题答案: 术语“解析”有点放错了位置,因为它已经是JSON格式。 您无需解析它,而只需对其进行访问。如果它是JSON格式的大String,则确实需要在访问之前先将其解析为可用的JSON对象。 此JSON包含一个属性,而该属性又包含一个array 。您可以使用点运算符访问属性。您可以使用给定的索引获取数组项,其中零表示第一项。 该数组又包含一个对象

  • 问题内容: 有谁知道如何解析所需格式的日期字符串? 问题答案: 看到: Mozilla Core JavaScript参考:Date对象 Mozilla核心JavaScript参考:String.Split 码: