12

私はたくさんの を持っています。divそのうちのいくつかには がありbackground-color: #aaa、他には fontがあり、他には がcolor: #aaaありますborder-color: #aaa。他divの は色が異なりますが、問題ありません。

#aaaこれらの色 ( ) を#cccCSS のどこにでも変更したいと考えています。背景色
を変更する方法は知っていますが、これは問題ではありません。1 つずつ変更するには s が多すぎます。divdiv

CSS で単語 (here #aaa) を見つけて、それを他の ( ) に置き換えることができる jQuery 関数を見つけようとしています。#ccc

そのようにする必要がありますが、私のコードは正しくありません:

$("*").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>

JQuery:

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

注: JQuery.css()は rgb(r, g, b) のような RGB カラー値を返すため、返された RGB 値を HEX 値に変換する必要があります。これはプログラムで行うことができますが、この質問の範囲外です。

CSS:

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

JSFiddle は次のとおりです。

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

于 2013-06-15T03:27:25.240 に答える