如果存在不同的CSS属性(颜色),则添加CSS属性(顶部)

时间:2013-02-13 14:39:34

标签: jquery css if-statement

我正在尝试添加到div的CSS,因为使用jQuery在该div中存在不同的CSS属性。这是算法:

  

如果#div1具有属性color:red,则也会将top: -10px;添加到#div1

这就是我的尝试:

if ($('#div1').css('color') === 'red') {
    $("#div1").css("top","-10px");
}

有人可以发现我的错误吗?

注意:虽然添加处理colortop的CSS类是更好的选择,但我无法编辑网站的样式表。

4 个答案:

答案 0 :(得分:4)

发布的代码中没有语法错误,css方法返回rgb值:

if ($('#div1').css('color') === 'rgb(255, 0, 0)') {

但是,您可以在元素中添加类并使用hasClass方法,而不是检查颜色:

.error {
   color: red;
}

if ( $('#div1').hasClass('error') ) {

答案 1 :(得分:3)

这是因为颜色可以用很多方式表示,例如。 rgb(255,0,0),“red”,#f00等。

答案 2 :(得分:0)

css颜色将以rgb值的形式返回。

你可以这样做this fiddle

if ($('#div1').css('color') == 'rgb(255, 0, 0)') {  
    $("#div1").css("color","blue");
}

注意我将输出更改为蓝色以进行明显更改。

不确定它是否依赖于浏览器所以我强烈建议您在div中添加一个类,并检查#div1是否具有该类,而不是检查颜色。

答案 3 :(得分:-2)

未经测试,但正确的语法应该有冒号和大括号

if ($('#div1').css('color') === 'red') {
    $("#div1").css({"top":"-10"});
}