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

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

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

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

Q&A

解決済

1回答

558閲覧

対応するボタンを押すことによってテキストの色を複数回変更する

3_April_2021

総合スコア48

JavaScript

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

0グッド

0クリップ

投稿2021/04/25 07:32

編集2021/04/26 06:22

##Code

html

1<button type="button" onclick="buttonClick('red')">red</button> 2<button type="button" onclick="buttonClick('orange')">orange</button> 3<button type="button" onclick="buttonClick('blue')">blue</button> 4<button type="button" onclick="buttonClick('finish')">finish</button> 5<p id='iElement'>Hi!</p>

script

1function changeColor(color,element){ 2if(color !== 'finish'){ 3 do { 4 switch(color){ 5 case 'red': 6 element.style.color = 'red'; 7 break; 8 case 'blue': 9 element.style.color = 'blue'; 10 break; 11 case 'orange': 12 element.style.color = 'orange'; 13 break; 14 }//switch 15 } while(color !== finish);//? 16}//if 17else{ 18 element.style.color = 'black'; 19}//else if 20}//function changeColor 21 22function buttonClick(color) { 23const element = document.getElementById('iElement'); 24changeColor(color,element); 25}//function buttonClick

##Action & Question
###コードを正しく理解します
期待される動作を実現するコードが表示されます。 しかし、偶然と試行錯誤によって作成されたため、これはなぜ起こるのかを理解されていません(たとえばdo...whileのstatementは明らかに奇妙です、しかし修正方法がわかりません)。
###より良い方法を見つけます
この試みは、以前に同じ目的によって作成されたコードが「対応するボタンを押すことによってテキストの色を1回変更する」ことしかできなかったために行われました。 反復処理(特に、 do...while)を使用するプログラムは初めて使用されるようなものなので、これは誤っているか、不適切に記述されている可能性があります。
##編集
###No.1: 目的を達成するコードが作成されました。
もう少し詳細なコードを書いているときにこのようなコードが機能しなかったため、簡略化されたテストが実行されていましたが、プロセスで何らかの問題が発生していたようです: 目的を達成するコードがすでに作成されています。ただし、誤解が生じた事実が警戒され、締切はいくらかの確認を経た後に実行されます。 また、コードは整形後に投稿されます。焦らないでください。
####No.2:No.1のコード

script

1function changeColor(color,element){ 2 switch(color){ 3 case 'red': element.style.color = 'red'; break; 4 case 'blue': element.style.color = 'blue'; break; 5 case 'orange': element.style.color = 'orange'; break; 6 } 7} 8function buttonClick(color) { 9 const element = document.getElementById('iElement'); 10changeColor(color,element); 11}

html

1<button type="button" onclick="buttonClick('red')">red</button> 2<button type="button" onclick="buttonClick('orange')">orange</button> 3<button type="button" onclick="buttonClick('blue')">blue</button> 4<p id='iElement'>Hi!</p>

No.3: No.2のコードを修正しました

修正部分の抜けがありました。 同じことを繰り返したくないので、全部示すことにしました。また、このコードでは特に必要がなかったので、finishは省かれています。
###No.4: 既存回答の確認を完了次第、回答の受付が終了されます。
ループが必要だと誤解した理由に見当がつきました。 まだ十分に検証されていませんが、それはここに書く必要がある場合でも補足となる内容に過ぎないため、回答の受付はその検証とは無関係に終了されます。 焦らないでください。

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

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

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

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

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

itagagaki

2021/04/25 10:02

質問をより具体的にしてください。
3_April_2021

2021/04/25 10:43

コードは整形後に投稿されます。焦らないでください。 現在お尋ねすることはありません
guest

回答1

0

ベストアンサー

ループする意味がないと思いますが・・・

javascript

1function changeColor(color,element){ 2 if(color=="finish") color=null; 3 element.style.color = color; 4}

投稿2021/04/26 00:55

yambejp

総合スコア115010

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

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

3_April_2021

2021/04/26 07:04

if文の省略とcolor name?の直接的な設定を確認しました。残念ながら、等価演算子については十分な理解がありませんが、意図した範囲の処理が実行できることは確認しています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問