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

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

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

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

JavaScript

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

Q&A

解決済

2回答

8410閲覧

IE11で〇〇.style.display = 'none'が効かない

hosodaaaaa

総合スコア47

Internet Explorer

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

JavaScript

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

0グッド

0クリップ

投稿2020/05/11 16:46

iEとIE以外のブラウザでメールフォームの切り替えをしようと思い、Promis関数がある場合、ない場合で判定をとってdisplay: 〇〇;をjsで制御しよと思い、実装したところVirtualBoxのIE11で反映されないことに気づきました。

const aaa = document.querySelector('.abc') if (typeof Promise === 'function') { aaa.style.display = 'block' //chrome,firefox,safariでは適用されている } else { aaa.style.display = 'none' //VirtualBoxのIE11では何も変わらない }

上記のコードで実装しているのですが、何かおかしな記述をしている箇所があれば教えていただきたいです。
よろしくお願いします。

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

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

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

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

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

okina

2020/05/11 17:07

aaa.style.display = 'none' の部分が、 //chrome,firefox,safariでは適用されているのに、 //VirtualBoxのIE11では何も変わらない という認識でよろしいですか?
hosodaaaaa

2020/05/11 17:15 編集

@okina さん はい、その認識で問題ないです! chrome,firefox,safariではhtml elementsに```style='display: block;'```と記載されて要るのですが、 IEではそのような記述はされておらず、またIEではconsole.logが使用できないので、デバッグに苦しんでおります。
guest

回答2

0

ベストアンサー

IEでconsole.log()が使えないというのは聞いたことがないですし、

HTML

1 <div> 2 <div>要素</div> 3 <div>要素</div> 4 <div>要素</div> 5 <div>要素</div> 6 <div class="abc">要素22</div> 7 <div class="abc">要素33</div> 8 <div class="abc">要素44</div> 9 <div>要素</div> 10 <div class="abc">要素55</div> 11 <div>要素</div> 12 <div>要素</div> 13 <div>要素</div> 14 <div>要素</div> 15 </div>

js

1const aaa = document.querySelector('.abc') 2console.log(aaa); 3if (typeof Promise === 'function') { 4 aaa.style.display = 'block' 5} else { 6 aaa.style.display = 'none' 7}

イメージ説明

効いてます。
イメージ説明

HTMLにおかしいところがあるのでは。
現時点では提示されてないので誰も確かめようがありません。

投稿2020/05/11 19:25

編集2020/05/11 19:28
m.ts10806

総合スコア80875

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

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

hosodaaaaa

2020/05/12 08:38

回答頂きありがとうございます。 今回、バンドラーのparcelを使用して、同ページ内に設置するスライダーを実装するためにswiperをimportしており、buildした際にsyntaxerrorがIEで発生していました。 errorを追ってみると、swiperの依存である```class Dom7 {```というclass構文の記述があり、それが原因でそれ以降の処理が止まっているということが原因でした。 swiper関連の要素をコメントアウトしたところ、console.logも使用できました。 console.log()が使用できないというのは下記リンクを見たのと、処理が止まっていたことで IEではconsole.log()が使えないんだと思ってしまいました。 https://qiita.com/moniru/items/fe470676a30adc1af518
hosodaaaaa

2020/05/12 09:04

また、ieで表示切り替え判定を取るため、Promiseを使っていたもののIEでpromise関数の取得が出来ていたので、判定要素をpromiseからfetchに変更しました。
m.ts10806

2020/05/12 10:09

質問にないことはこちらでくみ取ることは出来ません。追記してください。 エラーが起きればそこで中断するのがJavaScriptなので、console.log()より前に起きたら当然動きません。 使えるかどうかはそれだけが動作するプログラムを書いて単体確認しましょう。入り組んだロジックの中だけで判断は出来ません。
guest

0

例えばですが、

js

1const aaa = document.querySelector('.abc') 2if (!true) { 3 aaa.style.display = 'block' //chrome,firefox,safariでは適用されている 4} else { 5 aaa.style.display = 'none' //VirtualBoxのIE11では何も変わらない 6}

としたときに、.abcの要素は表示されますか?

js

1document.getElementsByClassName("abc");

で要素を取得するのはどうですか?

念のため、constではなくvarを使って宣言してみた場合はどうですか?

投稿2020/05/11 17:20

編集2020/05/11 17:45
okina

総合スコア471

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

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

hosodaaaaa

2020/05/11 17:36

問題なく、表示されています。
hosodaaaaa

2020/05/11 17:42

document.getElementsByClassName("abc").style.display = 'none' document.getElementsByClassName("abc").style.display = 'block' の指定は既に試していて、こちらもIEでは表示されたままになっていました。
okina

2020/05/11 18:00

varを使った変数宣言はいかがですか?
hosodaaaaa

2020/05/11 18:05

遅くまでお付き合いいただき、ありがとうございます。 指摘していただいた、varもletも関係なくだめでした。。
okina

2020/05/11 18:14

うーーーん、、、正直おかしいところはないと思います。 お役に立てずすいません
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問