回答編集履歴

2

.

2023/04/14 06:21

投稿

int32_t
int32_t

スコア20884

test CHANGED
@@ -5,7 +5,7 @@
5
5
  "change",function(e){shiborikomi(parent_,child_,n)});
6
6
  }
7
7
  ```
8
- この `shiborikomi(parent_,child_,n)` で参照される変数 `parent_` `child_` `n` はどこにも宣言されていませんから、グローバル変数です。change イベントが発生したとき、それ以前で最後に代入された値を参照します。
8
+ この `shiborikomi(parent_,child_,n)` で参照される変数 `parent_` `child_` `n` はどこにも宣言されていませんから、グローバル変数です。change イベントが発生したとき、それ以前で最後に代入された値を参照します。`for` ループの1回目でイベントリスナが登録され、`for` ループの2回目で変数の値が更新され、その後で登録されたイベントリスナが呼ばれます。
9
9
 
10
10
  変数宣言を適切に行ってローカル変数にすれば直ると思います。
11
11
 

1

.

2023/04/14 06:17

投稿

int32_t
int32_t

スコア20884

test CHANGED
@@ -7,7 +7,7 @@
7
7
  ```
8
8
  この `shiborikomi(parent_,child_,n)` で参照される変数 `parent_` `child_` `n` はどこにも宣言されていませんから、グローバル変数です。change イベントが発生したとき、それ以前で最後に代入された値を参照します。
9
9
 
10
- 変数宣言を適切に行ば直ると思います。
10
+ 変数宣言を適切に行ってローカル変数にすれば直ると思います。
11
11
 
12
12
  ```js
13
13
  for (let a of arr) {
@@ -15,7 +15,7 @@
15
15
  const parent_ = a[1];
16
16
  const child_ = a[2];
17
17
  document.getElementsByName(parent_)[0].addEventListener(
18
- "change", function(e) { shiborikomi(parent_, child_, n)});
18
+ "change", function(e) { shiborikomi(parent_, child_, n); });
19
19
  }
20
20
  ```
21
21