jQueryを使用して、ToDoリストを作っています。
削除ボタンを押すと追加したリストを削除できるようにしたいのですが、上手くいきません。
html
html:html
1<div class="container"> 2 <h1>ToDoリスト</h1> 3 <input type="text" id="input"> 4 <button id="add">追加</button> 5 <ul class="lists"> 6 </ul> 7</div>
scss
scss:scss
1.container{ 2 margin: auto; 3 width: 500px; 4 padding-top: 10px; 5} 6 7.lists{ 8 border: 1px solid gray; 9 margin-top: 15px; 10 11 li{ 12 padding: .2em; 13 14 button{ 15 margin-left: 10px; 16 } 17 } 18}
javascript
javascript:javascript
1$('#add').on('click', (function () { 2 var input = $('#input').val(); 3 4 if (input.length) { 5 $('.lists').append('<li>' + input + '<button id="remove">削除</button>' + '</li>'); 6 7 $('.lists').css('padding', '10px'); 8 } 9 10 $('#remove').click(function () { 11 $(this).parent().remove(); 12 }) 13 14 if ($('.lists').has('li')) {} else { 15 $('.lists').css('padding', '0px'); 16 } 17 18 $('#input').val(''); 19 }))
append
でli
の後ろに要素を追加するようにしているのですが、何故かprepend
で追加するようにするとremove()
がしっかり機能します。これの原因も分かりません。
#remove
が全て取得できていないのかと思い、each()文を利用して下記の記述にしてみたのですが、これもダメでした。
javascript:javascript
1$('#remove').each(function () { 2 $(this).click(function () { 3 $(this).parent().remove(); 4 }) 5})
原因を教えて頂けると幸いです。
宜しくお願い致します。

回答2件
あなたの回答
tips
プレビュー