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

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

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

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

jQuery

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

1417閲覧

javascriptの表示

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

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

jQuery

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

1クリップ

投稿2018/12/25 15:30

編集2018/12/25 17:48
<html lang = "ja"> <head> <meta charset = "utf-8"> <link rel = "stylesheet" href = "main.css"> </head> <body> <div class = "square"> <div class = "circles"> <div class = "circle-1"></div> <div class = "circle-2"></div> <div class = "circle-3"></div> </div> </div> <button type = "button" class = "my-button">ボタン</button> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script> <script src="main.js"></script> </body> </html> コード
$(".my-button").on("click", function() { if($(".circle-1").css("background-color")!== "rgb(128, 128, 128)") { $(".circle-1").css("background-color", ""); $(".circle-2").css("background-color", "yellow"); } else if($(".circle-2").css("background-color")!== "rgb(128, 128, 128)") { $(".circle-2").css("background-color", ""); $(".circle-3").css("background-color", "red"); } else { $(".circle-3").css("background-color", ""); $(".circle-1").css("background-color", "skyblue"); } }); }) コード
width: 300px; height: 100px; background: white; } .circle-1, .circle-2, .circle-3 { width: 80px; height: 80px; background: grey; float: left; border-radius: 50px; margin-top: 10px; margin-left: 14px; } コード

というコードで水色黄赤の信号を作ったのですが、最初にボタンを押すと水色が表示されます。その理由がこのコードからどうしても理解することができません。わかるかたお助けください!

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2018/12/25 17:32

html部分のソースコード記載もお願いします。
kei344

2018/12/25 17:43

(質問文は編集できます)コードがどちらも切れているので質問本文を修正してください。
guest

回答2

0

最初にボタンを押すと水色が表示されます。その理由がこのコードからどうしても理解することができません。

console.log$(".circle-1").css("background-color") の値を確認してみてください。
最初は rgb(128, 128, 128) なので、"rgb(128, 128, 128)" !== "rgb(128, 128, 128)"false になり else if に進み、そこもfalse なのでelse に進み、水色になります。

動くサンプル:https://jsfiddle.net/nufcj47q/


【デバッグに大活躍! JavaScriptのconsole.logで値を表示しよう | 侍エンジニア塾ブログ | プログラミング入門者向け学習情報サイト】
https://www.sejuku.net/blog/27205

投稿2018/12/25 18:01

kei344

総合スコア69400

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

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

0

ベストアンサー

rgb(128, 128, 128)はgreyを指します

ifの条件をみてみましょう

  1. 円1の背景がグレーじゃなければ、円1の背景を消し、円2の背景を黄色に
  2. (1)でないとき円2の背景がグレーじゃなければ、円2の背景を消し、円3の背景を赤に
  3. (1),(2)でないとき円3の背景を消し、円1の背景を水色に

jsで背景を消す処理をしていますが、cssで各円にはデフォルトでグレーが設定されているので
消されたあとの円の背景はグレーになります。

初期状態が全部グレーですから(1)、(2)は通過し(3)の処理が適用されているわけです

投稿2018/12/26 00:38

yambejp

総合スコア114775

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問