実現したいこと
APIにてTODOデータを取得しulタグにリスト表示させます・
selectで全件が選択されているとTODOデータのtitleの値が表示され、
selectで未完了が選択されるとTODOデータのcompletedがfalseの値だけを表示
selectで完了が選択されるとTODOデータのcompletedがtrueの値だけを表示するという内容が完成系です。
前提
全建表示までは今のままで完成しているのですが、
未完了、完了の場合が実装できずにつまずいています、
発生している問題・エラーメッセージ
APIを取得し、全件表示はできたものの、未完了、完了を選択した場合の取得がうまくいかず、
エラーすら出ないコードになってしまいます。
完成系での目標はサブミットを使って親要素、子要素の追加、削除をして表示を更新したいのですが、
ネット記事を見てもイマイチ書き方が合っていないようで、、
エラーメッセージ
意味をなしていないコードのせいかエラーすら出ません
該当のソースコード
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>lesson06 検索フォーム</title> <link rel="stylesheet" type="text/css" href="base.css"> </head> <body> <div id="wrapper"> <form id="sampleForm" method="post" action=""> Completed: <select name="select"> <option value="">全件</option> <option value="0">未完了</option> <option value="1">完了</option> </select> <button type="submit" id="submit" onclick="getData()">Email表示</button> </form> <!-- ここにリスト表示 --> <ul id="list"> <li></li> </ul> </div><!-- wrapper --></body> </html><script> const ul = document.querySelector('ul'); document.querySelector('button').addEventListener('click', function () { // 子要素を全て削除 }); async function getData() { event.preventDefault(); const response = await fetch('https://jsonplaceholder.typicode.com/todos'); const data = await response.json(); data.forEach(e=>list.appendChild(Object.assign(document.createElement('li'),{textContent:e.title}))); } </script>
JavaScript
試したこと
while文で子要素を全て削除するようなものを書いてみましたが、
このページは動作していませんと出てしまい断念
補足情報(FW/ツールのバージョンなど)
cssはこのように記入しています
#sampleForm {
margin: 20px 0 0 20px;
}
#box {
margin: 20px 0 0 20px;
width: 320px;
height: 180px;
background-color: #fdd;
}
#list li {
list-style-type: disc;
margin-left: 40px;
}
.error {
font-size: 12px;
color: #f00;
display: none;
}
回答2件
あなたの回答
tips
プレビュー