我可以使用jQuery .css()方法将简写css应用于元素吗?

时间:2010-07-14 20:39:18

标签: javascript jquery css

我正在尝试将未知样式应用于未知选择器,并且似乎无法使用jQuery的.css()方法应用简写css。它是否正确?有解决办法吗?

请注意,我正在动态构建对象以传递给.css(),并且不想使用.css('background','#000')语法。

$('#example').css({background:'#000000 url("images/bg.gif") repeat-x scroll 0 0 transparent'});

上面的代码不起作用。但是,下面的代码确实如此。

$('#example').css({background:'#000'});

这样做。

$('#example').css({background:'url("images/bg.gif")'});

但是当它们一起使用时,它们会自然地相互覆盖。有什么建议吗?

2 个答案:

答案 0 :(得分:4)

background: #000000 url("images/bg.gif") repeat-x scroll 0 0 transparent;

...是无效的CSS。您已指定背景颜色两次(#000000和透明)。如果您使用有效的CSS,它应该可以工作。

也就是说,使用类和外部样式表通常是更好的选择。

答案 1 :(得分:2)

您最好的选择是在CSS文件中包含一组预定义的CSS类,然后根据需要动态应用这些目标样式。

这样做的另一个好处是可以将jQuery代码保持在可读和可管理的水平。

所以不要写:

$('#example').css({background:'url("images/bg.gif")'});

您可以选择更简单的方法:

$('#example').addClass('myClass1');