回答編集履歴

2

追記:headタグの中に書いても読み込む方法

2016/06/12 13:28

投稿

star24star
star24star

スコア115

test CHANGED
@@ -31,3 +31,41 @@
31
31
  一旦これで解決。
32
32
 
33
33
 
34
+
35
+ ---
36
+
37
+ **追記** : headタグの中でもちゃんとjsが処理してくれる方法
38
+
39
+
40
+
41
+ jsファイルはheadタグの中でないと何となく気持ち悪いのでもっと調べた結果、
42
+
43
+ まずはbody要素内全てを読み込んだ後に処理させれば良いということが分かりました。
44
+
45
+
46
+
47
+ ```JavaScript
48
+
49
+ // body要素内のすべてを読み込む
50
+
51
+ window.onload = function() {
52
+
53
+ var add = document.getElementById('add');
54
+
55
+ add.addEventListener('click', function(){
56
+
57
+ var greet = document.createElement('p');
58
+
59
+ var text = document.createTextNode('hello, world');
60
+
61
+ document.body.appendChild(greet).appendChild(text);
62
+
63
+ });
64
+
65
+ }
66
+
67
+ ```
68
+
69
+
70
+
71
+

1

解決策について

2016/06/12 13:28

投稿

star24star
star24star

スコア115

test CHANGED
@@ -1,3 +1,33 @@
1
1
  取り敢えず問題になっていた
2
2
 
3
3
  `Uncaught TypeError: Cannot read property 'addEventListener' of null`について
4
+
5
+
6
+
7
+ 参考URL
8
+
9
+ [【javascript】addEventListenerなどのイベントについて](http://ameblo.jp/kaigo-gakusei/entry-11071390027.html)
10
+
11
+
12
+
13
+ - 問題
14
+
15
+ headタグの中でjsファイルを読み込んでいたが、
16
+
17
+ 上から順に処理されるため、`id='add'`が見つからないので`null`になっていた。
18
+
19
+
20
+
21
+ - 解決
22
+
23
+ headタグの中で読み込んでいたjsファイルをbodyタグの中の一番下へ持ってくる
24
+
25
+ (取得したいidより後でjs処理させる)
26
+
27
+
28
+
29
+ もっと上級者になれば他の解決方法があるのかもしれませんが
30
+
31
+ 一旦これで解決。
32
+
33
+