12

我有很多divs,其中一些有 a background-color: #aaa,其他有 font color: #aaa,还有一些border-color: #aaa。其他div的有不同的颜色,没关系。

我想将这些颜色 ( #aaa)更改#ccc为 CSS 中的任何位置。
我知道如何更改背景div颜色,但这不是问题,我有太多divs 无法一一更改。

我正在尝试找到一个 jQuery 函数,它可以让我找到一个单词(here #aaa)并将其替换#ccc为 CSS 中的其他()。

应该是这样,但我的代码不正确:

$("*").if(backgroundColor == "#aaa"){replace by "#ccc"},
if(color == "#aaa"){replace by "#ccc"}, if(borderColor == "#aaa"){replace by "#ccc"}, etc..
4

1 回答 1

5

你想遍历你想要的类型的所有元素(在这种情况下我选择了div因为它非常常见)并动态分配颜色,如下所示:

HTML:

<div id="one">Some text</div>
<div id="two">Some text</div>
<div id="three">Some text</div>
<div id="four">Some text</div>
<div id="change">
    <input type="button" value="Change Colors!" />
</div>

查询:

$("#change").click(function () {
    $("div").each(function () {
        var color = $(this).css("color");
        if (color == "rgb(170, 170, 170)") {
            $(this).css("color", "#ccc");
        }
    });
});

注意:JQuery.css()返回一个 RGB 颜色值,如 rgb(r, g, b) 因此您需要将返回的 RGB 值转换为 HEX 值。这可以通过编程方式完成,但超出了这个问题的范围。

CSS:

#one, #two {
    color: #aaa;
}
#three, #four {
    color: green;
}

这是JSFiddle:

http://jsfiddle.net/hQkk3/44/

于 2013-06-15T03:27:25.240 回答