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

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

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

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

Q&A

解決済

2回答

1312閲覧

おみくじの結果が「大吉」の時だけ「赤文字」「文字を大きく」したいです

beginner001

総合スコア29

JavaScript

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

0グッド

0クリップ

投稿2020/05/02 07:44

javascript

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4<title>おみくじ</title> 5 6</head> 7<body> 8<h1>おみくじ</h1> 9<input type=button value="おみくじスタート" onclick="onButtonClick()"> 10<div id="dsp"></div> 11 12 <script> 13 let kujis =["大吉","吉","中吉","小吉","末吉","凶","大凶"]; 14 let kuji = Math.floor(Math.random()*kujis.length); 15 16 let disp = document.getElementById("dsp"); 17 18 19 function onButtonClick(){ 20 dsp.innerHTML = kujis[kuji]; 21 if(kuji=0){ 22 dsp.style.color="red"; 23 dsp.font-size:200%; 24 } 25 } 26   27 </script>

おみくじの結果が「大吉」のときだけ「赤文字」「文字サイズを200%」にしたいのですが、
赤文字にもならず文字サイズも大きくなりません。
どこに問題があるのでしょうか。よろしくお願いします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

二点ほど。

javascript

1if(kuji=0){ 2 // 省略 3}

これのif文の箇所は比較ではなく、代入式になっているからです。
kuji変数に0が代入され、その値、0が評価されるので、その条件は一生通りません。
==と、二つにしましょう。そうすれば、0の時通るようになります。

javascript

1dsp.font-size:200%;

に関して。
CSSと同じ文法になっているので、
100%エラーになります。
その前行にならって同じように指定してください。

javascript

1dsp.style.fontSize = "200%";

また、下記の方がスタイルが効くかもしれないです。

javascript

1dsp.style.fontSize = "2em";

コメントの、スタイルが一度変わると、その後変わらない件

これも二点あります。

  • まず、kuji変数が一度定義されて、その後変更していないからです。

ようは、いくらonButtonClickを実行しても、kuji変数の中身を変更しないような処理となっているので、
変わりようがないです。
onButtonClickの実行時にkujiを変えるように、処理を変更しましょう。

  • 二点目は、一回スタイルを変更した後、kuji変数を変えたとしても、一度当てたスタイルを解除するようにはなっていないので、解除する処理を入れねばなりません。

上記二点は、処理のキモとなるため、ご自身でまず処理を書いてみてください。
(これ以上は作業依頼に答える形になってしまいます。)

投稿2020/05/02 07:56

編集2020/05/03 03:23
miyabi_takatsuk

総合スコア9555

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

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

m.ts10806

2020/05/02 09:39

VB、VBAとかですね。=で比較 あれはあれで他の言語やってからだと分からなくなる。
miyabi_takatsuk

2020/05/02 12:03

そ、そうなんですか・・・! 情報、ありがとうございます!
beginner001

2020/05/03 02:38

ありがとうございます。以下のように直して実行したら、大吉だけでなく「吉」も赤文字になってしまいます。また文字サイズに変化はありません。 function onButtonClick(){ dsp.innerHTML = kujis[kuji]; if(kuji==0){ dsp.style.color= "red"; dsp.style.fontSize = "200%"; } }
miyabi_takatsuk

2020/05/03 03:01 編集

そうですね、 要件は、文字を大きくしたいなので、 毎回スタイル変わってしまう〜というのは要件に含まれてないので・・・。 質問本文に、そのことも含めていただけませんか?? 文字の大きさに関しては、 dsp.style.fontSize = "2em"; に変えてみてください。
beginner001

2020/05/03 04:08

分かりました。ありがとうございました。
guest

0

デベロッパーツールというものがあるので、それでエラーを確認してみてください。少なくとも下記部分はエラーが起きてしまいます。

js

1dsp.font-size:200%;

【初心者向け!Chromeの検証機能(デベロッパーツール)の使い方】
https://saruwakakun.com/html-css/basic/chrome-dev-tool

【ChromeのデベロッパーツールでJSをデバッグする方法(2019年版) - ICS MEDIA】
https://ics.media/entry/190517/

投稿2020/05/02 07:52

編集2020/05/02 07:58
kei344

総合スコア69606

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

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

kei344

2020/05/02 07:54

「if(kuji=0)」もおかしいので、入門書などを買って「比較演算子」を調べましょう。
minokiti

2020/05/02 10:45

「dsp.style.color="red";」の「"red"」が文字列になっているのが怪しいと思いますよ!
kei344

2020/05/02 11:39

To: minokitiさん この質問が気になるようなら検証環境を作って試してみてください。その上で回答してみてはいかがでしょう。
m.ts10806

2020/05/02 12:06

>minokitiさん redは通りますよ。 れっきとした「カラーネーム」の1つです。 ("tomato"とかもあるくらいですから)
beginner001

2020/05/03 02:46

Chromeの検証機能は知りませんでした。ありがとうございます。
退会済みユーザー

退会済みユーザー

2020/05/03 03:26

fontawesome のサンプルコードで、「tomato」が使われてますよね。
oikashinoa

2020/05/03 03:33

fontawesome…Duotone Iconsとか面白いもの増えてますね。 脱線し過ぎなのでこの辺で止めときます。
beginner001

2020/05/03 04:12

有難うございましt。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問