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

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

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

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

Q&A

解決済

3回答

2075閲覧

JavaScriptで画像をクリックした時に、文字が表示されるようにしたい

dedede_daiou

総合スコア10

JavaScript

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

0グッド

0クリップ

投稿2020/03/02 05:50

JavaScriptで画像(test.png)をクリックした時に、文字が表示されるようにしたく
下記のように記述してみたのですが、画像をクリックしても何の反応もありません。
間違いがあればご指摘いただけないでしょうか。

html

1<body> 2 <div class="main"> 3 <div class="icon"><a href="#" onclick="Click_Sub();"><img src="img/test.png"></a></div> 4 <div class="txt1"><h2>ここにテキストが表示</h2></div> 5 </div> 6 7 <!-- テキスト表示・非表示切り替えスクリプト --> 8 <script language="Javascript"> 9 function Click_Sub() { 10 if (document.all.txt1.style.display == "none") { 11 document.all.txt1.style.display = "block" 12 } else { 13 document.all.txt1.style.display = "none" 14 } 15 } 16 </script> 17</body>

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

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

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

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

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

guest

回答3

0

ベストアンサー

document.allはIE独自のプロパティでIE6以下でしか使用できません。
クラス名で要素を取得する場合は、getElementsByClassNameを使ってください。

html

1<body> 2 <div class="main"> 3 <div class="icon"><a href="#" onclick="Click_Sub();"><img src="img/test.png"></a></div> 4 <div class="txt1"><h2>ここにテキストが表示</h2></div> 5 </div> 6 7 <!-- テキスト表示・非表示切り替えスクリプト --> 8 <script language="Javascript"> 9 function Click_Sub() { 10 var txt = document.getElementsByClassName('txt1')[0] 11 if (txt.style.display == "none") { 12 txt.style.display = "block" 13 } else { 14 txt.style.display = "none" 15 } 16 } 17 </script> 18</body>

投稿2020/03/02 06:17

hatena19

総合スコア34075

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

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

dedede_daiou

2020/03/02 06:37

document.allについて、廃止されていたことや制限があることなど 全く知りませんでした。 getElementsByClassNameで実現できました。 ありがとうございました。
guest

0

document.all5年以上前に廃止されています。

【Document.all - Web APIs | MDN】
https://developer.mozilla.org/en-US/docs/Web/API/Document/all

querySelectorquerySelectorAllを使ってください。

【要素の取得方法まとめ - Qiita】
https://qiita.com/amamamaou/items/25e8b4e1b41c8d3211f4

投稿2020/03/02 06:16

kei344

総合スコア69606

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

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

dedede_daiou

2020/03/02 06:37

document.allについて、廃止されていたことや制限があることなど 全く知りませんでした。 getElementsByClassNameで実現できました。 ありがとうございました。
guest

0

document.allはIE11で廃止されてますね。古いIE限定の書き方です。

HTML

1・・・ 2if (document.getElementsByClassName('txt1')[0].style.display === "none") { 3 document.getElementsByClassName('txt1')[0].style.display = "block" 4} else { 5 document.getElementsByClassName('txt1')[0].style.display = "none" 6} 7・・・

chrome、新Edgeのみで動作確認していますが、大体これでいけるはずです。

投稿2020/03/02 06:15

yureighost

総合スコア2183

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

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

dedede_daiou

2020/03/02 06:37

document.allについて、廃止されていたことや制限があることなど 全く知りませんでした。 getElementsByClassNameで実現できました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問