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

回答編集履歴

1

chousei

2022/02/22 06:36

投稿

yambejp
yambejp

スコア118037

answer CHANGED
@@ -1,1 +1,42 @@
1
- とりあえずcsvのメソッドは$.csv.toArrays()
1
+ とりあえずcsvのメソッドは$.csv.toArrays()
2
+
3
+ # sample
4
+ csvの取り込み部分だけjQueryを利用しておきます
5
+ ```javascript
6
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
7
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-csv/1.0.3/jquery.csv.min.js"></script>
8
+ <script>
9
+ window.addEventListener('DOMContentLoaded', async()=>{
10
+ const url='sample.csv';
11
+ const data=await fetch(url).then(res=>res.text());
12
+ var csv=$.csv.toArrays(data);
13
+ [...new Set(csv.map(x=>x[0]))].forEach(x=>{
14
+ ken.appendChild(Object.assign(document.createElement('option'),{value:x,textContent:x}));
15
+ });
16
+ ken.addEventListener('change',e=>{
17
+ const v=e.target.value;
18
+ document.querySelectorAll('#shityouson option').forEach((x,y)=>{
19
+ if(y>0) x.remove();
20
+ });
21
+ csv.filter(x=>x[0]==v).map(x=>x[1]).forEach((x,y)=>{
22
+ shityouson.appendChild(Object.assign(document.createElement('option'),{value:x,textContent:x,"data-idx":y}));
23
+ });
24
+ ichiran.textContent="";
25
+ });
26
+ shityouson.addEventListener('change',e=>{
27
+ const v=csv.filter(x=>x[0]==ken.value && x[1]==shityouson.value);
28
+ ichiran.textContent=v;
29
+ });
30
+
31
+ });
32
+ // var ken=[...new Set(data.map(x=>x[0]))];
33
+ </script>
34
+
35
+ <select id="ken">
36
+ <option value="">---</option>
37
+ </select>
38
+ <select id="shityouson">
39
+ <option value="">---</option>
40
+ </select>
41
+ <div id="ichiran"></div>
42
+ ```