チェックボックスaaa,ccc,gggがあり、
aaaにチェックを入れるとbbbが、
cccにチェックを入れるとddd,eee,fffが、
gggにチェックを入れるとhhh,iii がアクティブになります。
jsでまとめて書きたいのですが、現状のjsでは
aaaにチェックを入れるとbbbだけでなく、
ddd,eee,fff, hhh,iiiもアクティブになってしまいます。
クラス名:parent--01内のinputをチェックするとnest--01がアクティブに
クラス名:parent--02内のinputをチェックするとnest--02がアクティブに
クラス名:parent--03内のinputをチェックするとnest--03がアクティブに
逆にチェックを外すと非アクティブに というように
それぞれのグループのみをアクティブ/非アクティブにするには
どのようにすればよろしいでしょうか。
HTML
1<div><span class="select--area parent--01"> 2 <input type="checkbox" name="aaa1" value="1" id="aaa1" class="checkSet" checked="checked"> <label for="aaa1" class="text-checkbox ml-30p"> 3 <span>aaa</span> 4 </label> 5 <a tabindex="1" class="icon--question" role="button" data-toggle="popover" data-html="true" data-trigger="focus" data-content="" data-original-title="" title=""> 6 7 </a> 8 9 10 11 <span class="select--area--sub nest--01"> 12 <input type="checkbox" name="bbb1" value="1" id="bbb1" class="checkSet"> <label for="bbb1" class="text-checkbox ml-30p"> 13 <span>bbb</span> 14 </label> 15 <a tabindex="1" class="icon--question" role="button" data-toggle="popover" data-html="true" data-trigger="focus" data-content="" data-original-title="" title=""> 16 </a> 17 </span> 18 </span> 19 </div> 20 21 22 <div><span class="select--area parent--02"> 23 <input type="checkbox" name="aaa1" value="1" id="ccc1" class="checkSet" checked="checked"> <label for="ccc1" class="text-checkbox ml-30p"> 24 <span>ccc</span> 25 </label> 26 <a tabindex="1" class="icon--question" role="button" data-toggle="popover" data-html="true" data-trigger="focus" data-content="" data-original-title="" title=""> 27 28 </a> 29 30 31 32 <span class="select--area--sub nest--02"> 33 <input type="checkbox" name="bbb1" value="1" id="ddd1" class="checkSet"> <label for="ddd1" class="text-checkbox ml-30p"> 34 <span>ddd</span> 35 </label> 36 <a tabindex="1" class="icon--question" role="button" data-toggle="popover" data-html="true" data-trigger="focus" data-content="" data-original-title="" title=""> 37 </a> 38 </span> 39 40 <span class="select--area--sub nest--02"> 41 <input type="checkbox" name="bbb1" value="1" id="eee1" class="checkSet"> <label for="eee1" class="text-checkbox ml-30p"> 42 <span>eee</span> 43 </label> 44 <a tabindex="1" class="icon--question" role="button" data-toggle="popover" data-html="true" data-trigger="focus" data-content="" data-original-title="" title=""> 45 </a> 46 </span> 47 48 <span class="select--area--sub nest--02"> 49 <input type="checkbox" name="bbb1" value="1" id="fff1" class="checkSet"> <label for="fff1" class="text-checkbox ml-30p"> 50 <span>fff</span> 51 </label> 52 <a tabindex="1" class="icon--question" role="button" data-toggle="popover" data-html="true" data-trigger="focus" data-content="" data-original-title="" title=""> 53 </a> 54 </span> 55 </span> 56 </div> 57 58 <div><span class="select--area parent--03"> 59 <input type="checkbox" name="aaa1" value="1" id="ggg1" class="checkSet" checked="checked"> <label for="ggg1" class="text-checkbox ml-30p"> 60 <span>ggg</span> 61 </label> 62 <a tabindex="1" class="icon--question" role="button" data-toggle="popover" data-html="true" data-trigger="focus" data-content="" data-original-title="" title=""> 63 64 </a> 65 66 67 68 <span class="select--area--sub nest--03"> 69 <input type="checkbox" name="bbb1" value="1" id="hhh1" class="checkSet"> <label for="hhh1" class="text-checkbox ml-30p"> 70 <span>hhh</span> 71 </label> 72 <a tabindex="1" class="icon--question" role="button" data-toggle="popover" data-html="true" data-trigger="focus" data-content="" data-original-title="" title=""> 73 </a> 74 </span> 75 76 77 78 <span class="select--area--sub nest--03"> 79 <input type="checkbox" name="bbb1" value="1" id="iii1" class="checkSet"> <label for="iii1" class="text-checkbox ml-30p"> 80 <span>iii</span> 81 </label> 82 <a tabindex="1" class="icon--question" role="button" data-toggle="popover" data-html="true" data-trigger="focus" data-content="" data-original-title="" title=""> 83 </a> 84 </span> 85 </span> 86 87 </div> 88
CSS
1span[class*="parent--"] label>span{ 2 font-size:18px; 3 font-weight:bold; 4} 5span[class*="nest--"] label>span{ 6 font-size:14px; 7 font-weight:normal; 8} 9span[class*="nest--"].active{ 10 color:#ff0000; 11}
JavaScript(jQuery)
1$(function(){ 2 3 $('span[class*="parent--"]>input').on('change', function () { 4 $('span[class*="nest--"]>input').prop('disabled', !$(this).prop('checked')); 5 $('span[class*="nest--"]>input').toggleClass('active',$(this).is(':checked')); 6 }).trigger('change'); 7 8 9 10}); 11
回答2件
あなたの回答
tips
プレビュー