質問編集履歴

1

サンプルを作ってみました

2018/01/07 08:30

投稿

Kosei
Kosei

スコア13

test CHANGED
File without changes
test CHANGED
@@ -18,6 +18,116 @@
18
18
 
19
19
  また、今回はそのクラスを持っている要素が減ったり増えたりするので、for文でやることもできません。
20
20
 
21
- 最終的にはjQueryを使うか、子要素からたどっていくしかないと思うのですが、jQueryはなるべく使いたくないので、JavaScriptで完結するとありがたいです。
21
+ 最終的にはjQueryを使うか、子要素からたどっていくしかないと思うのですが、jQueryはなるべく使いたくないので、JavaScriptで完結するとありがたいです。
22
22
 
23
23
  よろしくお願いします。
24
+
25
+
26
+
27
+ 追記
28
+
29
+ ---
30
+
31
+ サンプルを作ってみました
32
+
33
+ ```HTML
34
+
35
+ <div id="elList">
36
+
37
+ <div class="parent">
38
+
39
+ <div class="child1">
40
+
41
+ <div class="child2">
42
+
43
+ </div>
44
+
45
+ </div>
46
+
47
+ </div>
48
+
49
+ </div>
50
+
51
+ <button id="append">追加</button>
52
+
53
+ ```
54
+
55
+ ```JavaScript
56
+
57
+ var elList = document.getElementById("elList");
58
+
59
+ var append = document.getElementById("append");
60
+
61
+
62
+
63
+ append.addEventListener("click", function() {
64
+
65
+ elList.innerHTML += `
66
+
67
+ <div class="parent">
68
+
69
+ <div class="child1">
70
+
71
+ <div class="child2">
72
+
73
+ </div>
74
+
75
+ </div>
76
+
77
+ </div>`;
78
+
79
+ });
80
+
81
+ ```
82
+
83
+ ```CSS
84
+
85
+ .parent {
86
+
87
+ width: 60px;
88
+
89
+ height: 60px;
90
+
91
+ margin: 10px;
92
+
93
+ background: #f00;
94
+
95
+ }
96
+
97
+
98
+
99
+ .child1 {
100
+
101
+ width: 40px;
102
+
103
+ height: 40px;
104
+
105
+ background: #0f0;
106
+
107
+ }
108
+
109
+
110
+
111
+ .child2 {
112
+
113
+ width: 20px;
114
+
115
+ height: 20px;
116
+
117
+ background: #00f
118
+
119
+ }
120
+
121
+ ```
122
+
123
+ [JSFiddle](https://jsfiddle.net/Kosei28/3moybbw3/2/)
124
+
125
+
126
+
127
+ これで、parentやparentの子孫要素をクリックした時にイベントを発生させたいのですが、
128
+
129
+ for文でやろうとしても増えたりするのでできません。
130
+
131
+ addEventListenerのevent.targetで子孫要素まで判定するとできなくはないですが大変です。
132
+
133
+ なので、jQueryみたいにできる方法はないのでしょうか。