回答編集履歴

1

補足情報を追加

2018/03/07 07:34

投稿

defghi1977
defghi1977

スコア4756

test CHANGED
@@ -1,9 +1,19 @@
1
- `getElementById`メソッドはHTML文書から得られたDOMツリーの中の`id`値をもつノードを求めるためのものです.
1
+ `getElementById`メソッドはHTML文書から得られたDOMツリーの中の`id`値をもつノードを抽出するためのものです.
2
2
 
3
3
 
4
4
 
5
- 通常これさえあればDOM内の検索は可能なのですが, いちいち`document.getElementById`と入力するのは面倒なので, HTML文書読み込み時に`id`属性を持つノードが現れると勝手にグローバル変数(`window`オブジェクトのプロパティ)にノードを追加することになっています. つまり`<span id="title"></span>`は変数`window.title`(`window`は省略可能なので`title`)としてアクセス可能です.
5
+ 通常これさえあればDOM内の検索は可能なのですが, いちいち`document.getElementById`と入力するのは面倒なので, HTML文書読み込み時に`id`属性を持つノードが現れると勝手にグローバル変数(`window`オブジェクトの疑似プロパティ)にノードを追加することになっています. つまりノード`<span id="title"></span>`は変数`window.title`(`window`は省略可能なので`title`)としてアクセス可能です.
6
6
 
7
7
 
8
8
 
9
9
  とは言え, このグローバル変数への登録処理は**HTML文書読み込み時の1度だけ行われる**ので, スクリプトを使って新たな`id`属性を持つノードをDOMに追加し, それを抽出する場合は`getElementById`メソッドを使わなければならない…のです.
10
+
11
+
12
+
13
+ なお, この`id`による直接アクセスはブラウザ毎に**細かい部分で実装が異なる**ため, 広く互換性を求める用途には適していません.
14
+
15
+
16
+
17
+ 参考
18
+
19
+ [https://html.spec.whatwg.org/multipage/window-object.html#named-access-on-the-window-object](https://html.spec.whatwg.org/multipage/window-object.html#named-access-on-the-window-object)