
yusukeM
削除ボタンを押したときに何かの処理を実行したいときは addEventListener関数を使います 第一引数にはイベント(クリック,スクロールなど)を 第二引数には実行したい関数を渡します 今回は削除ボタンが押されたときにタスクを削除したいので deleteButtonがクリックされたときにdeleteTaskを呼び出して欲しいとします 関数の定義方法はいくつか種類があるのですが一番良く使用されているアロー関数を使用します
deleteButton.addEventListener('click', () => deleteTask(taskId))
次にdeleteTask関数を作成しましょう deleteTaskの引数には削除したいタスクのIDを渡します remove関数を呼び出してタスク(テーブルの一行の要素)を削除します
const deleteTask = (taskId) => {
const task = document.getElementById(taskId)
task.remove()
}
次にid(連番)の作成を少し変更したいと思います 以前は
const id = list.children.length + 1
のようにしてidを取得していたと思いますがこれではタスクを削除すると listの中の要素数が減ってしまい新しくタスクを作成すると連番が取得できません なのでidの変数を用意します タスクが作成されるたびにidに1を足していきます こうすればタスクが削除されてもidの連番は崩れません id += 1 と id++ は同じ意味なのでどちらを使っても大丈夫です
let id = 0
add.addEventListener('click', () => {
if (newtask.value === '') {
return
}
id += 1
または
id++
...
次にtaskIdをテーブルの行(タスク)のid属性に追加します 文字列に変数を埋め込みたいときはテンプレートリテラルを使用します こうすることでidが展開されてtask-1, task-2のようになります
const tr = document.createElement('tr')
const taskId = `task-${id}`
tr.id = taskId
これで期待する動作ができると思います genoさんはjavascriptの基礎を勉強している段階だと思いますので 色々試して動かしてみることでjavascriptが何をしているのか分かってくると思います 分からないことはなんでも質問してくださいね^^