2012-03-23 11 views
0

色/背景色#d10044のすべてのCSS要素の色を変更するにはどうすればよいですか?jqueryで多くのcss要素の色を変更する

+1

その背景色を持つクラスを作成し、そのクラスをすべての要素から削除するほうがずっと良いでしょう。 addClass( 'MyOtherBackgroundColor');新しい色で新しい色を追加します:$( '*')。 – frenchie

+0

@frenchie、私はあなたに同意しますが、.find()の必要はありません。セレクタとしてクラスを使用してください。 –

+1

@Chimoo:そうです、あなたもこのように書くことができます:$( 'MyBackgroundColor')。removeClass MyBackgroundColor ')。addClass(' MyO theBackBackgroundColor ');どのような場合でも、すべての要素をループし、背景色を解析してから色を変更するよりも、クラスを変更する方がずっと効率的です! – frenchie

答えて

0

jQueryを使用してCSS属性値に基づいて要素を選択することはできません。

すべての変数を個別にループし、背景色の値を確認してから#d10044に変更する必要があります。

もう1つのことは、タグにクラスを追加し、CSSを使用して色を上書きすることです。

+0

私はあなたの叙事詩的なひげを賞賛しますが、私は反対...これは '.filter()'のためのものです。確かにそれは基本的にオブジェクトをループしていますが、それはかなり簡単になります –

1

これを試してみてください:それはかなり遅くなることができるように

$('*').each(function() { 
    if($(this).css("background-color") == "#d10044") { 
     // do whatever you need to those elements here 
    } 
});​​​​ 

それは、しかし、ページ上のすべての要素を通過します。可能な要素のリストを絞り込む方法があれば、それはグローバル(*)演算子よりも望ましいでしょう。

+0

これは、スタイルシートでrgb(xxx、xxx、xxx)のみを検索することができます – mowgli

+0

私は本当にこのソリューションを動作させるが喜びは欲しい。 – nipponese

+0

@nipponese:正確に何が問題だと思われますか?このコードはうまくいくはずです - 他の場所でエラーが発生している可能性があります。 –

1
$('*').filter(function(i){ 
    return $(this).css("background-color") == $("<div style='color:#d10044'/>").css("color"); 
}).css("color", "#000") 

http://api.jquery.com/filter/

のブラウザでは、色を報告することがありますので、あなたは、EDIT

RGBAまたは他のフォーマットとして、六角値にいくつかの正規化を実行する必要があります。ですここ

のためにそれをやりましたhttp://jsfiddle.net/Pvg8h/

+0

+1私がしているのとまったく同じ量の担当者がいるからです。 =) –

+0

このように? $( '*')。filter(function(){ $(this)} .css( "background-color")==#d10044 || $ .css( "color")==#d10044} ).css( "背景色"、 "オレンジ"); – mowgli

+0

私はあなたにどのように表示されるかを編集しました...その色の新しい要素を作成し、その色が何であるかをjQueryに報告させてください –

関連する問題