###前提・実現したいこと
「曜日」と書かれたチェックボックスチェックをすると、その曜日のすべての日が選択されるカレンダーを作りました。
動くサンプル
逆にクリックで、セルを一つ一つ選択して、月曜日なら月曜日のセルをすべて選択すると、対応する曜日のチェックボックスにチェックを入れたい。
そして一つでも外れていれば、チェックを外したい。
###発生している問題・エラーメッセージ
javascript
1cell.on('change', function () { 2 $("tr").each(function () { 3 for (var i = 0; i <= 6; i++) { 4...省略...
といった感じで配列を使って実現しようとトライしていますが、うまい方法が思いつきません…。
###該当のソースコード
html
1<label for=""> 2 <input type="checkbox" class="js-dow js-weekday">月曜</label> 3<label for=""> 4 <input type="checkbox" class="js-dow js-weekday">火曜</label> 5<label for=""> 6 <input type="checkbox" class="js-dow js-weekday">水曜</label> 7<label for=""> 8 <input type="checkbox" class="js-dow js-weekday">木曜</label> 9<label for=""> 10 <input type="checkbox" class="js-dow js-weekday">金曜</label> 11<label for=""> 12 <input type="checkbox" class="js-dow js-holiday">土曜</label> 13<label for=""> 14 <input type="checkbox" class="js-dow js-holiday">日曜</label> 15<table id="t1"> 16 <tr> 17 <th class="js-dow">mon</th> 18 <th class="js-dow">tue</th> 19 <th class="js-dow">wed</th> 20 <th class="js-dow">thu</th> 21 <th class="js-dow">fri</th> 22 <th class="js-dow">sat</th> 23 <th class="js-dow">sun</th> 24 </tr> 25 <tr> 26 <td>1</td> 27 <td>2</td> 28 <td>3</td> 29 <td>4</td> 30 <td>5</td> 31 <td>6</td> 32 <td>7</td> 33 </tr> 34 <tr> 35 <td>8</td> 36 <td>9</td> 37 <td>10</td> 38 <td>11</td> 39 <td>12</td> 40 <td>13</td> 41 <td>14</td> 42 </tr> 43 <tr> 44 <td>15</td> 45 <td>16</td> 46 <td>17</td> 47 <td>18</td> 48 <td>19</td> 49 <td>20</td> 50 <td>21</td> 51 </tr> 52 <tr> 53 <td>22</td> 54 <td>23</td> 55 <td>24</td> 56 <td>25</td> 57 <td>26</td> 58 <td>27</td> 59 <td>28</td> 60 </tr> 61 <tr> 62 <td>29</td> 63 <td>30</td> 64 <td class="disabled">1</td> 65 <td class="disabled">2</td> 66 <td class="disabled">3</td> 67 <td class="disabled">4</td> 68 <td class="disabled">5</td> 69 </tr> 70</table>
javascript
1$(function() { 2 var cell = $('#t1 td'); 3 cell.on("click", function() { 4 if (!$(this).parent().hasClass('.disable') && !$(this).hasClass('selected')) { 5 $(this).addClass('selected'); 6 } else if (!$(this).parent().hasClass('disable') && $(this).hasClass('selected')) { 7 $(this).removeClass('selected'); 8 } 9 }); 10 11 $(".js-dow").on("change", function() { 12 var flg = $(this).prop('checked'); 13 var dow = $(".js-dow").index(this); 14 var hol = $(".js-nh").index(this); 15 var td = $('td'); 16 $("#t1 tr").each(function() { 17 if (!td.hasClass('.js-national-holiday').length) { 18 $(this).find('td').eq(dow).toggleClass('selected', flg); 19 } 20 }); 21 }).change(); 22 23});
何卒よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。