##現象
JavaScriptでtodoリストを作っていますが、タスクを2つ以上作らないとチェックマークを付けた際にに打ち消し線が表示されません。
##現象が発生しているTodoリスト
http://nakatakira.html.xdomain.jp/test/test4/
##手順
1.ADDING TASK欄に、タスクを書き込みます。
2.Enterキーを押下すると、チェックマークとゴミ箱が含まれたタスクが表示されます。
3.チェックマークをチェックしても、打ち消し線は表示されません。
4.2つ以上タスクを作成すると、チェックマークにチェックすると打ち消し線が表示されることを確認しております。
※コンソールにもエラーが表示されないことを確認しております。
JavaScript
1 const addTask = document.getElementById('add'); 2 const list = document.getElementById('todos'); 3 4 addTask.addEventListener('submit', e => { 5 // デフォルトのイベントを無効 6 e.preventDefault(); 7 function createTodoList (task) { 8 // HTMLテンプレートを生成 9 const html = 10 `<ul class="listGroup__item todos__item"> 11 <li class="todo__checkbox"><input type="checkbox" name="taskcheck" ></li> 12 <li class="todo__task">${task}</li> 13 <li class="delete"></li> 14 </ul> 15 `; 16 list.innerHTML += html; 17 } 18 // タスクに入力した値を空白を除外して格納 19 const task = addTask.add.value.trim(); 20 if(task.length) { 21 // Todo List の HTML を生成 22 createTodoList(task); 23 // タスクに入力した文字をクリア 24 addTask.reset(); 25 } 26 const taskCheck = document.forms.todos.taskcheck; 27 for(let i = 0; i < taskCheck.length; i++){ 28 taskCheck[i].addEventListener('click', () => { 29 if(taskCheck[i].checked){ 30 taskCheck[i].parentNode.nextElementSibling.style.textDecoration = 'line-through'; 31 } else { 32 taskCheck[i].parentNode.nextElementSibling.style.textDecoration = 'none'; 33 } 34 }); 35 } 36 }); 37 38 //削除機能。deleteがクラスについている場合(つまりゴミ箱)。 39 list.addEventListener('click', e => { 40 if (e.target.classList.contains('delete')){ 41 e.target.parentElement.remove(); 42 } 43 44 });
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/14 02:32