###実現したいこと
jQueryを使って、cookieとjsonを扱おうとしてるのですが、値の変換にてこずっています。
実現したい流れはこうです。
.checkbox input
にチェックしたときに、そのdata-my_id
を取得してcookieに配列で保存しておく。
逆にチェックを外したときはcookieから削除する。
###該当のソースコード
HTMl
1<div class="checkbox"> 2 <input type="checkbox" data-my_id="1"> 3</div> 4<div class="checkbox"> 5 <input type="checkbox" data-my_id="2"> 6</div>
###試したこと
あれこれ質問させていただく中で、こちらのコードまで考えてみたのですが、それでもどうしてもできません。
どこを直せば実現できるか、もしわかる人がいらっしゃいましたら、どうか教えてください…宜しくお願い致します。
jQuery
1// 対象のidを追加か削除してcookieに保存する 2$(function(){ 3 $(document).on("change",".checkbox input", function(){ 4 // 対象のidを取得 5 var my_id_new = Number( $(this).data('my_id') ); 6 // cookieにあるチェック済みのidの配列を取得、なければ空の配列を取得 7 var my_id_current = $.cookie("my_id_current") !== '' ? JSON.parse($.cookie("my_id_current")) : []; 8 // チェックしたら配列に追加、チェックを外したら配列から削除 9 if( $(this).prop('checked') ){ 10 my_id_current.push(my_id_new); 11 }else{ 12 my_id_current = my_id_current.filter(id => id !== my_id_new); 13 } 14 // cookieを更新 15 $.cookie( "my_id_current", JSON.stringify(my_id_current),{ expires: 365, path:'/'} ); 16 }); 17});