質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

2回答

8016閲覧

特定背景色の要素を判別し背景色を変更したいです。

castail

総合スコア117

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

1クリップ

投稿2015/11/13 02:36

特定背景色の要素を判別し背景色を変更したいです。

具体的構成は以下の通りです。

lang

1<div style="background-color: rgb(255, 255, 0);"></div> 2<p></p> 3<span style="background-color: rgb(255, 0, 0);"></span> 4<h2></h2>

背景色は常にhtml上のstyle属性で指定され、付与されるDOM要素はランダムです。
この中で「 rgb(255, 0, 0)」の要素のみ、背景色を「 rgb(255, 255, 255)」に書き換えたいです。

ご教授よろしく御願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

はじめまして、全くの素人ですが回答させていただきます。
早速ですが、以下のjqueryのコードでどうでしょうか?無駄な部分などもあるかもしれません。
どのタイミングで変更したいのかがわからなかったので、idがchange_background_colorのボタンをおした時とさせていただきました。

javascript

1$(function () { 2 //ボタンを押した時 3 $('#change_background_color').click(function(){ 4 //全要素毎に? 5 $("*").each(function(){ 6 if($(this).css("background-color") == "rgb(255, 0, 0)"){ 7 $(this).css("background-color","rgb(255, 255, 255)"); 8 } 9 }); 10 }); 11}); 12

もしページ読み込み完了後実行したければ、

javascript

1$(function () { 2 //ページ読み込み完了後 3 $(window).load(function () { 4 //全要素毎に? 5 $("*").each(function(){ 6 if($(this).css("background-color") == "rgb(255, 0, 0)"){ 7 $(this).css("background-color","rgb(255, 255, 255)"); 8 } 9 }); 10 }); 11}); 12

で良いかと思います。問題があれば、あまり詳しいことはわかりませんが、可能な範囲でなら対応します!

【追記です】
早く回答していただいた方のコードのほうがスペースの処理などが適切だと思われますので、ベストアンサーなどはそちらにお願いします。

投稿2015/11/13 08:52

編集2015/11/13 09:01
landmine

総合スコア55

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

castail

2015/11/13 10:16

ご回答ありがとうございます。 コメント頂いたとおり、せっかくですが先にご回答頂いた「Lhankor_Mhy」様をベストアンサーにさせて頂きます。
guest

0

ベストアンサー

クラスをつけられない何らかの拘束があるものと拝察。

javascript

1$('body *[style]').each(function(){ 2 var target = $(this); 3 target.attr('style', target.attr('style').split(' ').join('').replace(/background-color:rgb\(255,0,0\);/,'background-color: rgb(255, 255, 255);')); 4});

投稿2015/11/13 08:50

Lhankor_Mhy

総合スコア35865

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

castail

2015/11/13 10:15

ご回答ありがとうございます。 ご教授いただいた内容を試したのですが、こちらの環境では反映されませんでした。。 他スクリプトなどの干渉も考えられますのでこちらを参考にしつつ調査したいと思います。 取急ぎお礼申し上げます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問