将CSS样式转换为JS变量?

时间:2015-11-17 17:27:26

标签: jquery css variables

我正在尝试为我想要和重用的某些样式创建变量,但似乎无法让它工作。我究竟做错了什么?

var bgColor = "'background' : 'rgb(102,204,0)'";
var textColor = "'color' : 'rgb(40,40,40)'";  

$('.className').css({bgColor, textColor});

4 个答案:

答案 0 :(得分:3)

如果您想在一次调用中应用这些值,请查看documents on jquery css,您需要创建有效的json。根据文件:

var validValues = 
{ 
  "background-color": "#ffe", 
  "border-left": "5px solid #ccc" 
};

var validValues = 
{
  backgroundColor: "#ffe", 
  borderLeft: "5px solid #ccc" 
} 

然后

$(selector).css(validValues);
  

请注意,使用DOM表示法时,属性名称周围的引号是可选的,但由于名称中的连字符,因此需要使用CSS表示法

具体说明你的工作不起作用的原因是以下内容没有为jquery创建有效的json:

var bgColor = "'background' : 'rgb(102,204,0)'";
var textColor = "'color' : 'rgb(40,40,40)'";  

var json = {bgColor, textColor};

json =

{
  bgColor: "'background' : 'rgb(102,204,0)'", 
  textColor: "'color' : 'rgb(40,40,40)'"
}

答案 1 :(得分:1)

尝试:

var bgColor = "rgb(102, 204, 0)";
var textColor =  "rgb(40, 40, 40)";

$('.className').css({ "background" : bgColor, "color" : textColor });

如果你想使用像JSON这样的变量结构:

var styleJson = 
{
    'background' : 'rgb(102, 204, 0)', 
    'color' : 'rgb(40, 40, 40)'
}

$('.className').css(styleJson)

答案 2 :(得分:0)

reverse_each' 2015-11-16T21:42:35.849263+00:00 app[web.1]: /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/fileutils.rb:217:in基本上是指jquery中的resolve_metastore_uri' 2015-11-16T21:42:35.849276+00:00 app[web.1]: /app/vendor/bundle/ruby/2.0.0/gems/rack-cache-1.2/lib/rack/cache/context.rb:71:in属性。

为了通过js变量使用它,你可以将它转换为数组。

block in spawn_thread'
2015-11-16T21:42:35.849267+00:00 app[web.1]: /app/vendor/bundle/ruby/2.0.0/gems/rack-cache-1.2/lib/rack/cache/metastore.rb:261:in

示例:http://jsfiddle.net/49byztbx/

答案 3 :(得分:0)

你也可以试试这个

var styles = {'background-color':'rgb(102,204,0)', 'color':'rgb(40,40,40)'}
$('.className').css(styles);