実現したいこと
フィルタ機能のボタンを別のページに設置したいです。
Aページのボタンをクリックすると、Bページに移動してBページの中にあるリストを絞り込み表示させる。
Bページのリストはjsonファイルからリストを作成しています。
html やcssはある程度分かるようになりましたが、javascriptは勉強中です。
A.html
1 <form method="get" action="indexB.html"> 2 <button name="x" value="近畿">近畿</button> 3 <button name="y" value="関東">関東</button> 4 <button name="z" value="中部">中部</button> 5 </form>
B.html
1 <button id="btnKinki">近畿</button> 2 <button id="btnKantoh">関東</button> 3 <button id="btnChubu">中部</button> 4 <div>console.logに表示</div> 5 <script> 6 function getUrlParam(param) { 7 var pageUrl = window.location.search.substring(1); 8 var urlVar = pageUrl.split('&'); 9 for (var i = 0; i < urlVar.length; i++) { 10 var paramName = urlVar[i].split('='); 11 if (paramName[0] == param) { 12 return decodeURI(paramName[1]); 13 } 14 } 15 }; 16let url = "C.json"; 17 let btn = document.querySelector("#btnKinki"); 18 btn.addEventListener("click", (e) => { 19 fetch(url) 20 .then((response) => { 21 return response.json(); 22 }) 23 .then((data) => { 24 var newLines = data.filter((item, index) => { 25 if (item.area.indexOf("近畿") >= 0) return true; 26 }); 27 console.log("近畿", newLines); 28 }); 29 }); 30 </script>
C.json
1[ 2 { 3 "name": "京都", 4 "area": "近畿", 5 "airport": [""], 6 "hp": "https://www.pref.kyoto.jp/" 7 }, 8 { 9 "name": "滋賀", 10 "area": "近畿", 11 "airport": [""], 12 "hp": "https://www.pref.shiga.lg.jp/" 13 }, 14 { 15 "name": "大阪", 16 "area": "近畿", 17 "airport": ["大阪国際空港","関西国際空港"], 18 "hp": "https://www.pref.osaka.lg.jp/" 19 }, 20 { 21 "name": "東京", 22 "area": "関東", 23 "airport": ["羽田空港","八丈島空港","大島空港","新島空港","三宅島空港","神津島空港","調布飛行場"], 24 "hp": "https://www.metro.tokyo.lg.jp/" 25 }, 26 { 27 "name": "埼玉", 28 "area": "関東", 29 "airport": [""], 30 "hp": "https://www.pref.saitama.lg.jp/" 31 }, 32 { 33 "name": "静岡", 34 "area": "中部", 35 "airport": ["静岡空港"], 36 "hp": "https://www.pref.shizuoka.jp/" 37 } 38]
回答1件
あなたの回答
tips
プレビュー