teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

調整

2023/11/09 13:20

投稿

yambejp
yambejp

スコア117963

answer CHANGED
@@ -26,4 +26,39 @@
26
26
  <ul id="list">
27
27
  </ul>
28
28
  </div>
29
- ```
29
+ ```
30
+
31
+ # 参考
32
+ API側で抽出する方法
33
+ (jsでfilter処理がいらない)
34
+ ```javascript
35
+ <script>
36
+ document.addEventListener('submit',async e=>{
37
+ e.preventDefault();
38
+ const s=e.target.querySelector('[name=select]').value;
39
+ const usp=new URLSearchParams();
40
+ if(s==="0") usp.append('completed','false');
41
+ if(s==="1") usp.append('completed','true');
42
+ const data=await fetch('https://jsonplaceholder.typicode.com/todos?'+usp).then(res=>res.json());
43
+ const list=document.querySelector('#list');
44
+ list.innerHTML="";
45
+ data.forEach(x=>{
46
+ const li=Object.assign(document.createElement('li'),{textContent:x.title});
47
+ list.appendChild(li);
48
+ });
49
+ });
50
+ </script>
51
+
52
+ <div id="wrapper">
53
+ <form>
54
+ Completed: <select name="select">
55
+ <option value="">全件</option>
56
+ <option value="0">未完了</option>
57
+ <option value="1">完了</option>
58
+ </select>
59
+ <button type="submit" id="submit">Email表示</button>
60
+ </form>
61
+ <ol id="list">
62
+ </ol>
63
+ </div>
64
+ ````