###前提
JQUERYのcookie.jsでクッキーの保存をするときに、このようなボタンのdata-idを拾ってクッキーに保存していこうと考えてます。
ボタンはたくさんあり、クリックすると「.check」が「.uncheck」になります。
html
1<button type="button" data-id="1" class="check_btn uncheck">チェック済</button> 2<button type="button" data-id="2" class="check_btn check">チェック</button>
###実現したいこと
クリック済みである「.uncheck」をクリックしたときには、そのdata-idをクッキーから削除したいんですけど、そのときにカンマが残ってしまうので、これを削除したいです。
たとえば「4%2C2」のときに「4」の「.uncheck」をクリックしたときは「2」だけを保存したいのに、「%2C2」のような感じでカンマ(%2C)が残ったままクッキーに保存されてしまうんです。
###試したこと
↓現在のコードです
JQUERY
1$(function(){ 2 $(document).on("click",".check_btn.check", function(){ 3 $(this).removeClass('check').addClass('uncheck'); 4 var current_checkId = $.cookie("check"); 5 var click_checkId = $(this).attr('data-id'); 6 if (current_checkId) { 7 var result_checkId = click_checkId + ',' + current_checkId; 8 }else{ 9 var result_checkId = click_checkId; 10 } 11 $.cookie( "check", result_checkId,{ expires: 730, path:'/'} ); 12 }); 13 $(document).on("click",".check_btn.uncheck", function(){ 14 $(this).removeClass('uncheck').addClass('check'); 15 var current_checkId = $.cookie("check"); 16 var click_checkId = $(this).attr('data-id'); 17 if (current_checkId) { 18 var current_checkId_array = current_checkId.split(','); 19 var idx = current_checkId_array.indexOf(click_checkId); 20 if (idx != -1){ 21 current_checkId_array.splice(idx, 1); 22 } 23 var result_checkId = current_checkId.replace(click_checkId, ""); 24 }else{ 25 var result_checkId = click_checkId; 26 } 27 $.cookie( "check", result_checkId,{ expires: 730, path:'/'} ); 28 }); 29});
普通はどのように書くべきかなど、もっとちゃんとした書き方もあったら教えてほしいです。よろしくお願い致します!
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/21 07:45
2019/01/21 07:51
2019/01/21 08:02 編集
2019/01/21 08:02 編集
2019/01/21 08:05
2019/01/21 08:07
2019/01/21 19:00