色/背景色#d10044のすべてのCSS要素の色を変更するにはどうすればよいですか?jqueryで多くのcss要素の色を変更する
答えて
jQueryを使用してCSS属性値に基づいて要素を選択することはできません。
すべての変数を個別にループし、背景色の値を確認してから#d10044に変更する必要があります。
もう1つのことは、タグにクラスを追加し、CSSを使用して色を上書きすることです。
私はあなたの叙事詩的なひげを賞賛しますが、私は反対...これは '.filter()'のためのものです。確かにそれは基本的にオブジェクトをループしていますが、それはかなり簡単になります –
これを試してみてください:それはかなり遅くなることができるように
$('*').each(function() {
if($(this).css("background-color") == "#d10044") {
// do whatever you need to those elements here
}
});
それは、しかし、ページ上のすべての要素を通過します。可能な要素のリストを絞り込む方法があれば、それはグローバル(*
)演算子よりも望ましいでしょう。
$('*').filter(function(i){
return $(this).css("background-color") == $("<div style='color:#d10044'/>").css("color");
}).css("color", "#000")
のブラウザでは、色を報告することがありますので、あなたは、EDIT
RGBAまたは他のフォーマットとして、六角値にいくつかの正規化を実行する必要があります。ですここのためにそれをやりましたhttp://jsfiddle.net/Pvg8h/
+1私がしているのとまったく同じ量の担当者がいるからです。 =) –
このように? $( '*')。filter(function(){ $(this)} .css( "background-color")==#d10044 || $ .css( "color")==#d10044} ).css( "背景色"、 "オレンジ"); – mowgli
私はあなたにどのように表示されるかを編集しました...その色の新しい要素を作成し、その色が何であるかをjQueryに報告させてください –
その背景色を持つクラスを作成し、そのクラスをすべての要素から削除するほうがずっと良いでしょう。 addClass( 'MyOtherBackgroundColor');新しい色で新しい色を追加します:$( '*')。 – frenchie
@frenchie、私はあなたに同意しますが、.find()の必要はありません。セレクタとしてクラスを使用してください。 –
@Chimoo:そうです、あなたもこのように書くことができます:$( 'MyBackgroundColor')。removeClass MyBackgroundColor ')。addClass(' MyO theBackBackgroundColor ');どのような場合でも、すべての要素をループし、背景色を解析してから色を変更するよりも、クラスを変更する方がずっと効率的です! – frenchie