###■目的
同じ処理を繰り返すjqueryがあるので、スマートに一括したいです。
###■現状
次のjqueryが【cookieがあればチェックする】という仕組みを担当してくれているのですが、
後述する【チェックされたらdisplay:table-cell;
する】というjqueryの書き方で躓いております。
▼【cookieがあればチェックする】
javascript
1(function($){ 2$(function(){ 3 4 //読み込み(cookieがあればチェックする) 5 if($.cookie("chk_selected_value")){ 6 $.cookie("chk_selected_value").split(",").forEach(function(v){ 7 $('input[name=chk][value='+v+']').prop('checked',true); 8 }); 9 } 10 11 //保存(.saveクリックでcookie保存) 12 $('.save').on("click",function(){ 13 var v=$('input[name=chk]:checked').map(function(){return $(this).val()}).get().join(","); 14 if(v===""){ 15 $.removeCookie("chk_selected_value"); 16 }else{ 17 $.cookie("chk_selected_value",v); 18 } 19 }); 20}); 21})(jQuery);
現状は上のコードに加えて、次のように1つずつ指示しているところです。
▼【チェックされたらdisplay:table-cell;
する】
javascript
1(function($){ 2$(document).ready(function () { 3 4 //もし「#a」がチェックされてたら display:table-cell; して 5 if ($("#a").prop("checked") == true) { 6 $(".a").css('display', 'table-cell'); 7 8 //チェックされてなければ display:none; してね 9 } else { 10 $(".a").css('display', 'none'); 11 } 12 13 //もし「#b」がチェックされてたら display:table-cell; して 14 if ($("#b").prop("checked") == true) { 15 $(".b").css('display', 'table-cell'); 16 17 //チェックされてなければ display:none; してね 18 } else { 19 $(".b").css('display', 'none'); 20 } 21 22}) 23})(jQuery);
これでもまぁなんとかできているのですけれど、#a #b #c #d #e…と数百個あるので、このように1個ずつ指示するのはチョットいやな感じです。
そこで、冒頭の目的に書いたように、スマートに一括する方法を探しているところなのです。
###■やってみたこと
いちおう次のようにすればスマートに一括できるか、と、思ったのですが、どうにもできず、躓いている次第です。
▼【チェックされてたらdisplay:table-cell;
する】
javascript
1(function($){ 2$(document).ready(function () { 3 4 //チェックされているvalueをopenに代入して 5 open = $('input[name="chk"]:checked').map(function() { 6 return $(this).val(); 7 }).get(); 8 9 //もし「#open(#aや#bなど)」がチェックされてたら display:table-cell; して 10 if ($('#' + open).prop("checked") == true) { 11 $('#' + open).css('display', 'table-cell'); 12 13 //チェックされてなければ display:none; してね 14 } else { 15 $$('#' + open).css('display', 'none'); 16 } 17 18}); 19})(jQuery);
どなたかスマートな方がいらっしゃいましたらご教示いただければ幸いです。何卒よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/04/02 11:55