javascript初級者です。よろしくお願いします。
現在要素の色を判別して、白でなかったら徐々に色を変化させ白に近づけるプログラムを作成しています。
その中で「色を変化させる」関数を作成したのですが、どうしてもうまくいきません。
関数は以下のようなものです。
function changeColor(color){
if(color!="rgb(255, 255, 255)"){
var oldcolor=color.match(/([0-9]{3}),.([0-9]{3}),.([0-9]{3})/);
var newcolor="rgb("+(Number(oldcolor[1])+5)+","+oldcolor[2]+","+oldcolor[3]+")";
alert(color);
alert(newcolor);
return(newcolor);
}
return(color);
}
alertはデバック用に書き足してあります。
さて、このプログラムを動作させると
まず「rgb(125, 255, 255)」というダイアログボックスが表示され
次に「rgb(130, 255, 255)」というダイアログボックスが表示されます。
ここまでは期待通りの動作です。
しかし、このダイアログボックスを閉じると「null」と書かれたダイアログボックスが開き、さらにそれを閉じるとfirebug上で「oldcolor is null」というエラーになってしまいます。
alert(newcolor);で正しい結果が返ってきているのだからnullって事は無いはずなのですが、とにかくうまくいきません。
「null」のダイアログボックスもナゾですし、分からないことだらけです。
どうかお助けください。よろしくお願いします。
No.1ベストアンサー
- 回答日時:
試してみた感じ、
「rgb(128, 255, 255)」――という入力に対し、
「rgb(133,255,255)」――とカンマ後に空白が入らない結果を返してるので、次回matchに失敗してるのではないかと。
早い回答ありがとうございます。
なるほど、「null」のダイアログボックスは2回目の関数呼び出し時でしたか。勝手にnullになってしまうなんてとんだ勘違いでしたねww。
その点を踏まえてプログラムを見直した結果正常に動作させることができました。
ただし、次回呼び出し時に「null」が返ってくる理由としては、2回目は別の要素から引数をとっていたのですが、その要素のstyleをhtmlタグではなく、スタイルシートで指定していたことが原因のようでした。
タグ内にstyle="backgroundColor=○○;"と書き足すことによって正しく動作しました。
とは言え教えて頂いた点には非常に助けられました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- Visual Basic(VBA) ダブルクリックでセルの色を変える 1 2022/12/24 15:52
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- その他(IT・Webサービス) cssの@mediaについて 1 2023/05/14 07:34
- JavaScript JAVASCRIPT 2 2022/04/15 15:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列にnullを代入すると、null...
-
C# ListBoxのインデックスの値...
-
Java配列でNullPointerExceptio...
-
java 引数 戻り値のあるメソッド
-
JSPで複数のSQL実行につ...
-
逆コンパイルの見方について(...
-
VBAで配列の計算
-
ループ処理の際、最後だけ","を...
-
配列をセッションに割り当てた後で
-
1~100までの数字を表示し、か...
-
Log4jで機能毎に別ファイルへ出...
-
Junitテストでvoid戻り値メッソ...
-
シャットダウンフックが呼ばれない
-
EXCEL VBA で、0から?1から?
-
テキストボックスに入力された...
-
べき乗
-
グレイコードの変換
-
javaで質問です。 文字列2023/2...
-
C言語のポインターに関する警告
-
IF関数でEmpty値を設定する方法。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ORA-01858: 数値を指定する箇所...
-
配列にnullを代入すると、null...
-
Java配列でNullPointerExceptio...
-
BOOL値を逆にしたい
-
getStringの値がNULLの時の処理
-
C# ListBoxのインデックスの値...
-
eclipseでoracle接続時のエラー...
-
gas カレンダー祭日設定でエラー
-
Javascript エラーメッセージが...
-
java 引数 戻り値のあるメソッド
-
C#でラジオボタンとコンボボッ...
-
MySQLのテーブル名を変数に置い...
-
jsp/Servletの動的に増えるフォ...
-
例外でBeanUtils.populateが、...
-
Stringを返す getText()メソッ...
-
JSPで複数のSQL実行につ...
-
逆コンパイルの見方について(...
-
if文を通らない
-
この世で連日正規表現について...
-
逆コンパイルの見方について(...
おすすめ情報