前提・実現したいこと
queryを {色:"1",旬:"2"} のような形にしたいです。
html
1<form id="form" name="search" action=""> 2 <div> 3 <p>色</p> 4 <label><input name="checkbox[]" type="checkbox" value="1">オレンジ</label> 5 <label><input name="checkbox[]" type="checkbox" value="2">紫</label> 6 </div> 7 <div> 8 <p>旬</p> 9 <label><input name="checkbox[]" type="checkbox" value="2">2月</label> 10 <label><input name="checkbox[]" type="checkbox" value="8">8月</label> 11 <label><input name="checkbox[]" type="checkbox" value="10">10月</label> 12 </div> 13 <button class="submit" value="検索">検索</button> 14</form>
js
1var query = $('[name="checkbox"]:checked').map(function(){ 2 var element = $(this).closest('label').siblings('p').text(); 3 var obj = {}; 4 obj[element] = $(this).val(); 5 return obj; 6 }).get(); 7 console.log(query); 8 alert(query); 9 10 // データの中から一致するオブジェクトを検索 11 var results = _.where(dataArray, query); 12 console.log(results);
現在の状態
console.log(query);をみると以下の状態
(5) [{…}, {…}, {…}, {…}, {…}] 0:{色: "5"} 1:{色: "4"} 2:{旬: "2"} 3:{旬: "8"} 4:{旬: "10"} length:5 __proto__:Array(0)
alert(query);をみると以下の状態になっています。
[object Object],[object Object],[object Object],[object Object],[object Object]
最終的には
var results = _.where(dataArray, query); console.log(results);
ここでjsonファイルから該当の項目を表示させる形にしたいと思っております。
}).get().join();
にしてみましたが、
alert(query);には相変わらず、
[object Object]
console.log(query);も当たり前ですが、
[object Object]
が入ってしまいます。
ご教示よろしくお願いします。
追記
最終的には
var results = _.where(dataArray, query);
ここで絞り込みの検索をしたいです。
dataArrayにはjsonから取って来たデータが入っています。
queryの部分に{色: "5"}などを直接入れた場合は正常に検索されます。
回答4件
あなたの回答
tips
プレビュー