あるいくつかの企画から「グループ」「場所」「ジャンル」で絞り込むコードを作成しようとしましたが、うまくいきませんでした。オブジェクトに格納されている値はconsole.log()使ってみましたが正常でした。(と思います…)ご教授お願いいたしますm( )m
html
1<!DOCTYPE> 2<html> 3<head> 4 <meta charset="utf-8" /> 5 <script src='jquery-1.11.3.min.js'></script> 6 <script src="script7.js"></script> 7</head> 8<body> 9 <form> 10 <select id="groupval"> 11 <option value="" selected>選択しない</option> 12 <option value="0">クラブ</option> 13 <option value="1">クラス</option> 14 </select> 15 <select id="placeval"> 16 <option value="" selected>選択しない</option> 17 <option value="0">B1</option> 18 <option value="1">B2</option> 19 </select> 20 <select id="genreval"> 21 <option value="" selected>選択しない</option> 22 <option value="0">食べ物</option> 23 <option value="1">アトラクション</option> 24 </select> 25 </form> 26 <ul id="searchcontainer"> 27 </ul> 28</body> 29</html>
javascript
1var DB = { 2 group: { 3 club: [], 4 class: [] 5 }, 6 place: { 7 B1: [], 8 B2: [] 9 }, 10 genre: { 11 eatting: [], 12 attraction: [] 13 }, 14 all: [] 15}, 16 DATA = [ //['group','place','genre','name'] 17 ['club', 'B1', 'eatting', 'SOCCER'], 18 ['club', 'B2', 'eatting', 'BASEBALL'], 19 ['class','B1', 'eatting','1-1'] 20], 21 CONTENTS = { //['image','contents'] 22 'SOCCER': ['"images/.jpg"','あああ'], 23 'BASEBALL': ['"images/.jpg"','いいい'], 24 '1-1': ['"images/.jpg"','ううう'] 25}; 26for (var i = 0; i < DATA.length; i++) { 27 var group = DATA[i][0], 28 place = DATA[i][1], 29 genre = DATA[i][2]; 30 DB['group'][group].push(DATA[i][3]); 31 DB['place'][place].push(DATA[i][3]); 32 DB['genre'][genre].push(DATA[i][3]); 33 DB['all'].push(DATA[i][3]); 34}; 35$(document).ready(function() { 36 var $groupval = $('#groupval'), 37 $placeval = $('#placeval'), 38 $genreval = $('#genreval'), 39 $searchcontainer = $('#searchcontainer'); 40 show(DB['all']); 41 $('select').on('change',function() { 42 $searchcontainer.empty();//reset 43 var groupval = DB['group'][$groupval.val()],//value 0=>club 1=>class ... 44 placeval = DB['place'][$placeval.val()],//value 0=>B1 1=>B2 ... 45 genreval = DB['genre'][$genreval.val()];//value 0=>eatting 1=>attraction ... 46 if (groupval == null ) 47 groupval = DB['all']; 48 if (placeval == null) 49 placeval = DB['all']; 50 if (genreval == null) 51 genreval = DB['all']; 52 var result_chain_before = groupval.concat(placeval), 53 result_before = result_chain_before.filter(function (x) { 54 return result_chain1.indexOf(x) !== result_chain1.lastIndexOf(x); 55 }); 56 result_before = jQuery.unique(result_before); 57 var result_chain = result_before.concat(genreval), 58 result = result_chain.filter(function (x) { 59 return result_chain.indexOf(x) !== result_chain.lastIndexOf(x); 60 }); 61 result = jQuery.unique(result); 62 show(result); 63 }); 64 function show(result) { 65 for (var i = 0; i < result.length; i++) { 66 $('<li><img src=' + CONTENTS[result[i]][0] + '><p>' + CONTENTS[result[i]][1] + '</p>').prependTo($searchcontainer); 67 }; 68 }; 69});
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/02/27 10:50 編集
2016/02/27 14:03 編集
2016/02/27 14:31
2016/02/27 15:19
2016/02/27 15:39