使用jQuery addClass更改背景

时间:2012-09-09 08:04:12

标签: jquery

我正在尝试通过添加具有其他背景颜色的新类来更改背景颜色。但颜色不会改变。它还是一样的颜色!我是否必须先删除旧的背景颜色?我猜我的代码应该有效!?

$(".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 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:1)

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

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

working fiddle

答案 2 :(得分: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;
}​

Demo

答案 3 :(得分:0)

kreativ,

请你试试这个:

    <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/

中查看

感谢