回答編集履歴
3
指摘があった通り、修正
answer
CHANGED
@@ -7,11 +7,14 @@
|
|
7
7
|
よって、下記のように、bomの要素一個一個にアクセスするとよいでしょう。
|
8
8
|
|
9
9
|
```javascript
|
10
|
+
// メモリ消費を防ぐために関数を先に定義
|
11
|
+
var clickFunc = function(){
|
12
|
+
this.innerHTML = '<img src="img/bom1.jpg">';
|
13
|
+
};
|
14
|
+
|
10
15
|
// 配列の全要素にforEachでアクセス、DOMに対して、onclickイベントを付与
|
11
16
|
bom.forEach(function(val){
|
12
|
-
val.onclick =
|
17
|
+
val.onclick = clickFunc;
|
13
|
-
val.innerHTML = '<img src="img/bom1.jpg">';
|
14
|
-
};
|
15
18
|
});
|
16
19
|
|
17
20
|
```
|
2
指摘があった通り、forEach中で、要素に対して、その場で処理を行うよう修正
answer
CHANGED
@@ -7,14 +7,11 @@
|
|
7
7
|
よって、下記のように、bomの要素一個一個にアクセスするとよいでしょう。
|
8
8
|
|
9
9
|
```javascript
|
10
|
-
// メモリ消費を防ぐために、当てる関数を先に定義
|
11
|
-
var clickFunc = function(){
|
12
|
-
this.innerHTML = '<img src="img/bom1.jpg">';
|
13
|
-
}
|
14
|
-
|
15
10
|
// 配列の全要素にforEachでアクセス、DOMに対して、onclickイベントを付与
|
16
11
|
bom.forEach(function(val){
|
17
|
-
val.onclick =
|
12
|
+
val.onclick = function(){
|
13
|
+
val.innerHTML = '<img src="img/bom1.jpg">';
|
14
|
+
};
|
18
15
|
});
|
19
16
|
|
20
17
|
```
|
1
onclickの名称のタイプミスを修正
answer
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
配列変数bomには、DOM要素が直接入っている状態なので、
|
2
2
|
document.getElementById(bom)では、要素を取得できません。
|
3
|
+
document.getElementById()メソッドは、
|
4
|
+
<div id="hoge"></div>など、id属性に指定した文字列を引数に渡し、該当のDOMを返すというメソッドです。
|
5
|
+
(document.getElementById('hoge') というように使う)
|
3
6
|
|
4
7
|
よって、下記のように、bomの要素一個一個にアクセスするとよいでしょう。
|
5
8
|
|
@@ -11,7 +14,7 @@
|
|
11
14
|
|
12
15
|
// 配列の全要素にforEachでアクセス、DOMに対して、onclickイベントを付与
|
13
16
|
bom.forEach(function(val){
|
14
|
-
val.
|
17
|
+
val.onclick = clickFunc.call(val);
|
15
18
|
});
|
16
19
|
|
17
20
|
```
|