条件分岐でmeatとcandyのチェックボックスを両方選択した場合の情報を出したいのですが、どうしても片方の情報しか出せません
どのように分岐すれば良いでしょうか?
javascript
1getProductsList(); 2 3 $('.refine-search-form input').on('change', function(event) { 4 // createArray(event); 5 getProductsList(event); 6 }); 7 8 /** 9 * ---------------------- ajaxでデータを取得する関数 ------------------------ 10 */ 11 12 function getProductsList(event) { 13 $.ajax({ 14 url: './service.json', 15 method: 'get', 16 dataType: 'json' 17 }) 18 .done(function(data) { 19 createArray(data, event); 20 }); 21 }
html
1<div class="products block"> 2 <h2 class="section-header"> 3 <span>ミルミールの製品</span> 4 </h2> 5 <form class="refine-search-form fs-18"> 6 <input type="hidden" name="mode" value="json" class="target"> 7 <input type="hidden" name="disp_number" value="1000" class="target"> 8 <input type="checkbox" value="candy" class="target"> 9 <label for="category_id34">インフルブロックのど飴</label> 10 <input type="checkbox" value="pastry" class="target"> 11 <label for="category_id32">菓子</label> 12 <input type="checkbox" value="juice" class="target"> 13 <label for="category_id31">ジュース・飲料</label> 14 <input type="checkbox" value="seasoning" class="target"> 15 <label for="category_id30">調味料</label> 16 <input type="checkbox" value="vegetables" class="target"> 17 <label for="category_id29">野菜・果物</label> 18 <input type="checkbox" value="fish" class="target"> 19 <label for="category_id28">鮮魚・海産物</label> 20 <input type="checkbox" value="meat" class="target"> 21 <label for="category_id27">牛肉・豚肉・鶏肉他</label> 22 <input type="checkbox" value="food" class="target"> 23 <label for="category_id8">食品</label> 24 <input type="checkbox" value="otherwise" class="target"> 25 <label for="category_id33">その他</label> 26 </form> 27 <div class="block-body"> 28 <ul class="refine-seach list" id="demo"> 29 </ul> 30 </div> 31 </div> 32
JavaScript
1 function createArray(data, event) { 2 $('.refine-seach').empty(); 3 var candyArray = [1,2,3,4,5]; 4 var meatArray = [10,11,12,13,14,15,16,17,18,19]; 5 var newArray = []; 6 var targetVal; 7 if (event) { 8 console.log(event); 9 targetVal = $(event.currentTarget).val(); 10 } 11 if(targetVal == 'candy' && targetVal == 'meat') { 12 newArray = data.products; 13 } else if(targetVal == 'meat') { 14 newArray = data.products.filter(function(item,i) { 15 return item.product_id >= 10; 16 }); 17 console.log(newArray); 18 } else if(targetVal == 'candy') { 19 newArray = data.products.filter(function(item,i) { 20 return item.product_id <= 5; 21 }); 22 } else { 23 newArray = data.products; 24 console.log(newArray); 25 }; 26 showData(newArray); 27 }
回答2件
あなたの回答
tips
プレビュー