0

我正在尝试通过添加具有另一种背景颜色的新类来更改背景颜色。但颜色不变。还是一样的颜色!我必须先删除旧的背景颜色吗?我想我的代码应该可以工作!?

$(".displayControl a:first").addClass("activeButton");

的CSS

.displayControl
{
padding: 20px 0 0 0;
float: right;
}

.displayControl a
{
background: #B7BABD;
margin: 0 5px 0 0;
padding: 5px 10px 5px 10px;
color: #ffffff;
}

.activeButton
{
background: #83AEE6;
}
4

4 回答 4

4

你被 CSS 的“特异性”规则打败了。尽管在样式表中更高,但更具体的指令赢得了胜利。

尝试将最后一个指令更改为:

.displayControl a.activeButton
{
background: #83AEE6;
}
于 2012-09-09T08:09:41.133 回答
1

.displayControl a优先级高于.activeButton

试试这个,

.displayControl
{
padding: 20px 0 0 0;
float: right;
}

.displayControl a
{
background: #B7BABD;
margin: 0 5px 0 0;
padding: 5px 10px 5px 10px;
color: #ffffff;
}

.displayControl .activeButton
{
background: #83AEE6;
}​

演示

于 2012-09-09T08:12:49.150 回答
1

您的 .activeButton css 声明不够具体,“.displayControl a”选择器更具体,因此使用该声明的背景(它优先于不太具体的 .activeButton 声明)。您应该使您的 activeButton 选择器更具体,如下所示:

.displayControl a.activeButton{
    background: #83AEE6;
}  ​

工作小提琴

于 2012-09-09T08:09:50.430 回答
0

创意,

请你试试这个:

    <div class='asd'>
    Something
    </div>

    .asd{background:#B7BABD;}
    .new{background:red;}

   $('div.asd').addClass(function(){
   $(this).css('background','');
   $(this).addClass('new');       
   });

在http://jsfiddle.net/QV2m3/中查看

谢谢

于 2012-09-09T08:35:42.130 回答