質問するログイン新規登録

回答編集履歴

3

追記

2020/08/08 05:34

投稿

AkitoshiManabe
AkitoshiManabe

スコア5434

answer CHANGED
@@ -64,9 +64,10 @@
64
64
  ```javascript
65
65
 
66
66
  // DOM 操作で HTMLに挿し込み
67
- document.getElementById("NowDate").innerHTML = now.date; // Error
67
+ document.getElementById("NowDate").innerHTML = now.date; // Errorで中断
68
68
  // => Uncaught TypeError: Cannot set property 'innerHTML' of null
69
- document.getElementById("NowDate2").textContent = now.datetime;
69
+ document.getElementById("NowDate2").textContent = now.datetime; // 実行されない
70
+ // => NowDate2 の表示(HTMLへの挿し込み)もない。
70
71
  ```
71
72
 
72
73
  開発者コンソールは コードを変更する毎に確認してください
@@ -76,10 +77,18 @@
76
77
  参照できない要素がある場合、無視できるようなコードにします。
77
78
  ```javascript
78
79
  // ご質問内の target を使う場合
80
+ target = document.getElementById("NowDate");
81
+ if( target !== null ) { // null(プリミティブ)はプロパティを持たない
82
+ target.innerHTML = now.date;
83
+ }
84
+ /*
79
85
  if( target = document.getElementById("NowDate") ) {
80
86
  target.innerHTML = now.date;
81
87
  }
88
+ */
82
89
 
83
90
  // null のときに ダミーオブジェクト {} とする例
84
91
  (document.getElementById("NowDate")||{}).innerHTML = now.date;
92
+ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
93
+ // HTMLDivElement or Object なので、プロパティを指定できる
85
94
  ```

2

追記

2020/08/08 05:34

投稿

AkitoshiManabe
AkitoshiManabe

スコア5434

answer CHANGED
@@ -69,4 +69,17 @@
69
69
  document.getElementById("NowDate2").textContent = now.datetime;
70
70
  ```
71
71
 
72
- 開発者コンソールは コードを変更する毎に確認してください
72
+ 開発者コンソールは コードを変更する毎に確認してください
73
+
74
+ 追記)
75
+
76
+ 参照できない要素がある場合、無視できるようなコードにします。
77
+ ```javascript
78
+ // ご質問内の target を使う場合
79
+ if( target = document.getElementById("NowDate") ) {
80
+ target.innerHTML = now.date;
81
+ }
82
+
83
+ // null のときに ダミーオブジェクト {} とする例
84
+ (document.getElementById("NowDate")||{}).innerHTML = now.date;
85
+ ```

1

追記

2020/08/07 04:49

投稿

AkitoshiManabe
AkitoshiManabe

スコア5434

answer CHANGED
File without changes