-1

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

如果#div1有属性color:red,那么添加top: -10px;#div1为好。

这是我尝试过的:

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

谁能发现我的错误?

color注意:虽然添加一个同时处理和的 CSS 类会是更好的选择top,但我无法编辑网站的样式表。

4

4 回答 4

4

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

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

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

.error {
   color: red;
}

if ( $('#div1').hasClass('error') ) {
于 2013-02-13T14:43:15.347 回答
3

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

于 2013-02-13T14:43:21.903 回答
0

css 颜色将作为 rgb 值返回。

你可以像这个小提琴一样

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

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

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

于 2013-02-13T14:46:22.277 回答
-2

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

if ($('#div1').css('color') === 'red') {
    $("#div1").css({"top":"-10"});
}
于 2013-02-13T14:42:55.977 回答