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

回答編集履歴

3

指摘があった通り、修正

2019/02/14 01:32

投稿

miyabi_pudding
miyabi_pudding

スコア9572

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 = function(){
17
+ val.onclick = clickFunc;
13
- val.innerHTML = '<img src="img/bom1.jpg">';
14
- };
15
18
  });
16
19
 
17
20
  ```

2

指摘があった通り、forEach中で、要素に対して、その場で処理を行うよう修正

2019/02/14 01:32

投稿

miyabi_pudding
miyabi_pudding

スコア9572

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 = clickFunc.call(val);
12
+ val.onclick = function(){
13
+ val.innerHTML = '<img src="img/bom1.jpg">';
14
+ };
18
15
  });
19
16
 
20
17
  ```

1

onclickの名称のタイプミスを修正

2019/02/14 01:29

投稿

miyabi_pudding
miyabi_pudding

スコア9572

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.onclic = clickFunc.call(val);
17
+ val.onclick = clickFunc.call(val);
15
18
  });
16
19
 
17
20
  ```