回答編集履歴

1

動くものを置きました。

2020/06/18 12:35

投稿

htsign
htsign

スコア870

test CHANGED
@@ -1,3 +1,133 @@
1
1
  検証はしておりませんが、取り急ぎ後ろから3行目の `delete_value.addEventListener('click, delete_element, false')` はエラーになりますよね。
2
2
 
3
3
  全部文字列で囲ってしまっています。
4
+
5
+
6
+
7
+ ---
8
+
9
+
10
+
11
+ とりあえず動くまで持っていきました。
12
+
13
+ `delete_element` は `addTaskTarget` に付与し、`delete_element` 内でボタンが押されたかどうか判断するようにしました。
14
+
15
+
16
+
17
+ ```javascript
18
+
19
+ document.addEventListener('DOMContentLoaded', function() {
20
+
21
+ const addTaskTrigger = document.getElementsByClassName('addTask-trigger')[0];
22
+
23
+ const addTaskTarget = document.getElementsByClassName('addTask-target')[0];
24
+
25
+ const addTaskValue = document.getElementsByClassName('addTask-value')[0];
26
+
27
+ let nextId = 0;
28
+
29
+ const todos = [];
30
+
31
+
32
+
33
+ const addTask = (task, id) => {
34
+
35
+ //テーブル要素を生成する td要素を作る
36
+
37
+ const tableItem = document.createElement('tr');
38
+
39
+ const addButtonTd = document.createElement('td');
40
+
41
+ const idSpanTd = document.createElement('td');
42
+
43
+ const taskSpanTd = document.createElement('td');
44
+
45
+ const removeButtonTd = document.createElement('td');
46
+
47
+
48
+
49
+ //Button要素を生成する
50
+
51
+ const addButton = document.createElement('button')
52
+
53
+ const removeButton = document.createElement('button')
54
+
55
+
56
+
57
+ //要素内のHTML文章を変更する
58
+
59
+ addButton.innerText = '作業中';
60
+
61
+ removeButton.innerText = '削除';
62
+
63
+ idSpanTd.innerText = id;
64
+
65
+ taskSpanTd.innerText = task;
66
+
67
+
68
+
69
+ //生成したテーブル要素をブラウザに表示する
70
+
71
+ tableItem.append(idSpanTd);
72
+
73
+ tableItem.append(taskSpanTd);
74
+
75
+ tableItem.append(addButtonTd);
76
+
77
+ tableItem.append(removeButtonTd);
78
+
79
+ addTaskTarget.appendChild(tableItem);
80
+
81
+
82
+
83
+ //生成したbutton要素を生成する
84
+
85
+ addButtonTd.append(addButton);
86
+
87
+ removeButtonTd.append(removeButton);
88
+
89
+
90
+
91
+ const todo = {
92
+
93
+ task: 'taskSpanTd',
94
+
95
+ status: '作業中'
96
+
97
+ };
98
+
99
+ todos.push(todo);
100
+
101
+ };
102
+
103
+
104
+
105
+ function delete_element(ev) {
106
+
107
+ if (ev.target instanceof HTMLButtonElement && ev.target.textContent === '削除') {
108
+
109
+ const row = ev.target.closest('tr');
110
+
111
+ addTaskTarget.removeChild(row);
112
+
113
+ }
114
+
115
+ }
116
+
117
+
118
+
119
+ addTaskTrigger.addEventListener('click', () => {
120
+
121
+ const task = addTaskValue.value;
122
+
123
+ addTask(task, nextId++);
124
+
125
+ addTaskValue.value = '';
126
+
127
+ });
128
+
129
+ addTaskTarget.addEventListener('click', delete_element, false);
130
+
131
+ });
132
+
133
+ ```