回答編集履歴

1

対処方2つ追加

2022/05/16 01:03

投稿

int32_t
int32_t

スコア20923

test CHANGED
@@ -6,5 +6,21 @@
6
6
 
7
7
  JavaScriptコードは `<button class="task_submit" ` がパーズされてDOMができるより前に実行されるため、`document.getElementsByClassName('task_submit')` の結果は空になります。
8
8
 
9
+ 対処方法はいろいろあります。
9
- `<script>` を `<button class="task_submit">` より下に移動するか、JavaScriptコード全体を `DOMContentLoaded` イベントリスナで囲ってください。
10
+ * `<script>` を `<button class="task_submit">` より下に移動する
11
+ * JavaScriptコード全体を `DOMContentLoaded` イベントリスナで囲む
12
+ * `<script>` に `defer` 属性を付ける
13
+ * `task_submit` ではなく `document` にイベントリスナを付ける
14
+ ```js
15
+ documente.addEventListener('click', evt => {
16
+ if (evt.target.closest('.task_submit')) {
17
+ evt.preventDefault();
18
+ const taskValue = document.getElementsByClassName('task_value')[0];
19
+ const task = taskValue.value;
20
+ addTasks(task);
21
+ taskValue.value = '' ;
22
+ }
23
+ });
24
+ ```
10
25
 
26
+