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

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

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

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

Q&A

解決済

3回答

465閲覧

文字色を赤にする記述の疑問

beginner001

総合スコア29

JavaScript

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

0グッド

1クリップ

投稿2020/04/20 07:04

javascript

1<html> 2<head> 3</head> 4<body> 5 6<div id="col">文字色が変わります</div> 7 8<input type="button" value="赤文字" onclick="chgColor()"> 9 10<script> 11 12 13function chgColor() 14   { 15    if(document.getElementById) 16   { 17 18 document.getElementById("col").style.color = "red"; 19   } 20   } 21 22</script> 23 24 25</body> 26 27</html> 28```javascript 29なぜ if(document.getElementById) が必要なのか、またその意味が理解できません。 30    document.getElementById("col").style.color = "red"; だけで十分な気がするのですが・・。 31よろしくお願いします。

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

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

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

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

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

kei344

2020/04/20 08:46

参考にしたページURLや書籍名を質問文に追記することをお勧めします。
beginner001

2020/04/20 21:51

今度から入手先を忘れずに記入するようにします。失礼いたしました。
Zuishin

2020/04/20 22:15

今度からではなく、今、編集してください。問題解決のためだけではなく、我々ソウトウェアを書く人の権利を守るためです。
guest

回答3

0

なぜ if(document.getElementById) が必要なのか

一つ考えられる可能性としては、「document.getElementByIdが存在しなかった古いブラウザでエラーにならないように」ということがあります。

もっとも、IE 5.5にもあるので、現代において考慮する必要性はほぼありません。

投稿2020/04/20 07:06

maisumakun

総合スコア145184

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

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

beginner001

2020/04/20 21:52

ありがとうございました。
guest

0

ベストアンサー

なぜ if(document.getElementById) が必要なのか

なんらかの環境を想定して、より堅牢な処理を目指しているからでは?
万が一documentがgetElementByIdメソッドをもっていないときエラーになるので。
普通は使えるのが前提でいいと思います

投稿2020/04/20 07:06

yambejp

総合スコア114839

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

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

yambejp

2020/04/20 08:47

通常ブラウザの種類やバージョン違いなどによる関数の実装が怪しい場合は polyfillで対応することが多いですね まぁ流石にgetElementByIdをpolyfillすることは無いでしょうけど・・・
beginner001

2020/04/20 21:54

polyfillという言葉を初めて知りました。ありがとうございました。
guest

0

その意味

Webの歴史を示しているだけですので、現在は不要な実装方法です。


W3C DOM Level1の Previous versions の最古のもの見ると、「1997年10月に最初の草案」が提唱されたようです。

それまでの DOMという考え方が無かった頃のブラウザには Netscape Navigator や IE3, IE4 といったブラウザが利用されていました。

W3CによるDOM仕様の提唱により getElementById() が実装されはじめ、
実装済みブラウザと未実装ブラウザとを切り分ける Feature Detection と言えます。

投稿2020/04/20 08:29

AkitoshiManabe

総合スコア5432

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

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

beginner001

2020/04/20 21:52

ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問