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

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

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

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

Q&A

解決済

2回答

671閲覧

JavaScript: クリック処理について (クリックする度に文字を入れ替えたい。)

rails_ruby

総合スコア87

JavaScript

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

0グッド

0クリップ

投稿2019/02/02 16:51

前提・実現したいこと

JavaScriptでクリック処理を実装しています。
[定休日]と[勤務日]をクリックする度に文字を入れ替えたいです。

発生している問題・エラーメッセージ

現状では、クリックすると定休日と表示させるところまで出来たのですが、クリックの度に文字を入れ替える事ができなくて困っています。

該当のソースコード

javascript

1//monday clicked 2document.getElementById("mon").onclick = function() { 3 console.log(document.getElementById("mon").innerHTML = "定休日"); 4};

試したこと

if文で条件分岐すればいいのかなと思いつつもどうif文を書けばいいかが分からなくて困っています。

補足情報(FW/ツールのバージョンなど)

javascript

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

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

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

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

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

guest

回答2

0

おそらく、何度クリックしても定休日と表示されるようになっています。

if

1var txt = document.getElementById("mon").innerHTML 2if (txt === '定休日') { 3 document.getElementById("mon").innerHTML = "勤務日" 4} else if(txt === '勤務日'){ 5 document.getElementById("mon").innerHTML = "定休日" 6} 7
var txt = document.getElementById("mon").innerHTML document.getElementById("mon").innerHTML = txt==='勤務日' ? '定休日' : '勤務日'

このようにしてみてはどうでしょうか。

投稿2019/02/02 17:07

mirai0322

総合スコア24

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

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

0

ベストアンサー

JavaScript

1document.getElementById( 'mon' ).addEventListener( 'click', function( event ) { 2 var text = ( event.currentTarget.innerText === '定休日' ) ? '勤務日' : '定休日'; 3 event.currentTarget.innerText = text; 4} ); 5```**動くサンプル:**[https://jsfiddle.net/175pownq/](https://jsfiddle.net/175pownq/) 6 7--- 8 9 10【EventTarget.addEventListener() - Web API | MDN11[https://developer.mozilla.org/ja/docs/Web/API/EventTarget/addEventListener](https://developer.mozilla.org/ja/docs/Web/API/EventTarget/addEventListener) 12 13【event.currentTargetとevent.targetの違い – 1日ひとつ、強くなる。】 14[http://better-than-i-was-yesterday.com/difference-btween-dievent-target-and-event-currenttarget/](http://better-than-i-was-yesterday.com/difference-btween-dievent-target-and-event-currenttarget/) 15 16【条件 (三項) 演算子 - JavaScript | MDN17[https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Conditional_Operator](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Conditional_Operator)

投稿2019/02/02 17:03

kei344

総合スコア69407

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

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

rails_ruby

2019/02/02 17:11

懇切にご教示していただきありがとうございます。三項演算子で使えばよかったんですね。 ずっと三項演算子以外の方法で考えていたので勉強になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問