質問: 0; display(currentDisplayCount); }); //もっと見るで要素を追加 $('.original-tab-more-btn').click(function () { currentDisplayCount += MAX_DISPLAY_COUNT; display(currentDisplayCount); }); }); ``` ``` [ { "category": "re", "url": "", "img": "", "labelName": "", "dateText": "", "labelName2": "", "dateText2": "", "price": "" }, { "category": "re", "url": "", "img": "", "labelName": "", "dateText": "", "labelName2": "", "dateText2": "", "price": "" }, ] ```
回答: 基本的なeachメソッドで解決すると思います。双方に同じクラスを指定しておき、jsonデータの回収用にdataメソッドで値を取得しておくようにします。 ``` All new re もっと見る All new re ``` それからeachメソッドで任意の回数ループさせれば、同じ処理を繰り返し行えます。またイベントトリガーもeachメソッドで任意のラジオボタンが選択されるようにすれば行けるのではないかと思います。 jsonはインデックスさえ取得できればいいので、他にもいい方法はあると思います。 ``` /*以上、前略*/ $.getJSON('jsonのソース',init); function init(data) { //全データを保持しておく alldata = data; //とりあえず全データを代入しておく filterdata = alldata; //データを表示させる display(0); } /*以下を書き加える*********************/ let json_idx; $('.select-filter').each(function(){ $(this).find('input[type=radio]').val(); json_idx = $(this).data('jsonidx'); //jsonのインデックスを埋め込んだデータから取得 display(json_idx); //任意のフィルターを行う関数 }) // let currentDisplayCount = 0; //ラジオボタンが変わった時にフィルタリングする関数 $('.original-filter input:radio').each(function(){ $(this).on("click",function(){ $boxes.empty(); //チェックボタンの状況によってフィルタリングする var cate=$(this).val(); //フィルターの配列をいったん空っぽにする filterdata=[]; if(cate==="all"){//allが選択されたら全データを保持 filterdata=alldata; }else{ filterdata=$.grep(alldata,function(n){ return n.category===cate; } }) }) /*以下省略*/ ``` すぐに動作確認ができないのですが、これで調整してみてください。