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

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

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

onclickとはユーザーのクリック処理を指します。これは"onmousedown"(押下)と"onmouseup"(押上)の二つの事象の組み合わせです

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSSフレームワーク

CSSフレームワークは、Webページのスタイルを指定する言語であるCSSを容易に構築するためのツールです。ツイッター社が開発した「Bootstrap」や段組レイアウトが可能な「Foundation」など様々なCSSフレームワークがあります。

Q&A

解決済

2回答

5215閲覧

onclickで<i>のclassを変更するにはどうすればいいですか。

taiyakix

総合スコア427

onclick

onclickとはユーザーのクリック処理を指します。これは"onmousedown"(押下)と"onmouseup"(押上)の二つの事象の組み合わせです

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSSフレームワーク

CSSフレームワークは、Webページのスタイルを指定する言語であるCSSを容易に構築するためのツールです。ツイッター社が開発した「Bootstrap」や段組レイアウトが可能な「Foundation」など様々なCSSフレームワークがあります。

1グッド

0クリップ

投稿2019/11/13 10:33

Font Awesomeのiconをonclickで変更したいのですが、、、

font awesomeを使ってアイコンを使っています。クリックしたらアイコンが変更するようにしたいです。
font awesomeではクラス指定によってどのアイコンか判別しているようなのでクラスを変更することでアイコンの種類を変えられるようですがどうすれば良いのかわかりません。

該当のソースコード

html

1<link href="https://use.fontawesome.com/releases/v5.6.1/css/all.css" rel="stylesheet"> 2<i class="fab fa-twitter"></i>
gizmodo👍を押しています

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

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

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

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

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

m.ts10806

2019/11/13 10:34

まずは思った通り(調べてから)組んでみてください。 これだと作業依頼と変わりません。
yambejp

2019/11/13 10:34

どこを基準に、なにをクリックして、なにのなにをどう変更したいのでしょう?
guest

回答2

0

最新の記述式ではなく、昔の書き方だとこんな感じでしょうか
最新の記述だと、[].forEach.call?? ()=>?? x=>?? でわけわからないと思いますw

イベントリスナではなく、初心者の方でもわかりやすいイベントハンドラで書くとこうなります。
関数の引数1つ目には this でこの i 要素を指定して、2つ目の引数には、変更したい Font Awesome のクラス名を指定します。

fontawesomeChange関数は toggle関数で 交互にクラス名を変更しているだけです。

HTML

1<i class="fab fa-twitter" onclick="fontawesomeChange( this, 'fa-twitter-square' )"></i> 2

JavaScript

1function fontawesomeChange( element, changeClassName ) { 2 element.classList.toggle(changeClassName); 3}

 

1回きりなら、引数追加して

HTML

1<i class="fab fa-twitter" onclick="fontawesomeChange( this, 'fa-twitter', 'fa-twitter-square' )"></i>

JavaScript

1function fontawesomeChange( element, oldClassName, changeClassName ) { 2 element.classList.replace( oldClassName, changeClassName ); 3}

投稿2019/11/13 16:07

編集2019/11/13 16:26
pinoko

総合スコア127

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

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

yambejp

2019/11/14 00:30

突っ込んでも仕方ないですがclassListも最新の書き方の一つだと思いますが・・・
pinoko

2019/11/14 03:37

そうでした 困りました
guest

0

ベストアンサー

とりあえず

javacript

1<script> 2window.addEventListener('DOMContentLoaded', ()=>{ 3 [].forEach.call(document.querySelectorAll('.fab'),x=>{ 4 x.addEventListener('click',()=>{ 5 if(x.classList.contains("fa-twitter")){ 6 x.classList.replace("fa-twitter","fa-twitter-square"); 7 }else{ 8 x.classList.replace("fa-twitter-square","fa-twitter"); 9 } 10 }); 11 }); 12}); 13</script> 14<link href="https://use.fontawesome.com/releases/v5.6.1/css/all.css" rel="stylesheet"> 15<i class="fab fa-twitter"></i> 16<i class="fab fa-twitter-square"></i> 17

投稿2019/11/13 10:46

yambejp

総合スコア114757

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

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

taiyakix

2019/11/14 11:03

codepenで上手く動きました。ありがとうございました。正直コードを見ても理解できない自分がいるので、もっと学習してまともな質問をできるように頑張ります。おバカな中一ですみません
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問