teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2016/10/05 08:27

投稿

yambejp
yambejp

スコア117846

answer CHANGED
@@ -13,4 +13,83 @@
13
13
 
14
14
  ※一応tableを確定させるためにtableにid="t1"を指定してください。
15
15
  ※thも対象ですか?軽微な修正なのでソースを修正しときました
16
- find('td')→find('td,th')
16
+ find('td')→find('td,th')
17
+
18
+ # 追記
19
+
20
+ よくみたらもとの機能はそのままなんですね
21
+ ではこんな感じで
22
+ ```javascript
23
+ $(function() {
24
+ $('#t1 tr:first-child th').on('click', function() {
25
+ var dow=$('#t1 tr:first-child th').index(this);
26
+ $('.js-dow').eq(dow).prop('checked',function( index, prop ){return !prop;}).change();
27
+ });
28
+ $('.js-dow').on('change', function() {
29
+ var flg=$(this).prop('checked');
30
+ var dow=$('.js-dow').index(this);
31
+ $('#t1 tr').each(function() {
32
+ $(this).find('td,th').eq(dow).toggleClass('selected',flg);
33
+ });
34
+ }).change();
35
+ });
36
+
37
+ ```
38
+ ついでにHTMLもほぼ提示のままですが
39
+ ```HTML
40
+ <input type="checkbox" class="js-dow">月曜
41
+ <input type="checkbox" class="js-dow">火曜
42
+ <input type="checkbox" class="js-dow">水曜
43
+ <input type="checkbox" class="js-dow">木曜
44
+ <input type="checkbox" class="js-dow">金曜
45
+ <input type="checkbox" class="js-dow">土曜
46
+ <input type="checkbox" class="js-dow">日曜
47
+
48
+ <table id="t1">
49
+ <tr>
50
+ <th class="js-dow">mon</th>
51
+ <th class="js-dow">tue</th>
52
+ <th class="js-dow">wed</th>
53
+ <th class="js-dow">thu</th>
54
+ <th class="js-dow">fri</th>
55
+ <th class="js-dow">sat</th>
56
+ <th class="js-dow">sun</th>
57
+ </tr>
58
+ <tr>
59
+ <td>1</td>
60
+ <td>2</td>
61
+ <td>3</td>
62
+ <td>4</td>
63
+ <td>5</td>
64
+ <td>6</td>
65
+ <td>7</td>
66
+ </tr>
67
+ <tr>
68
+ <td>8</td>
69
+ <td>9</td>
70
+ <td>10</td>
71
+ <td>11</td>
72
+ <td>12</td>
73
+ <td>13</td>
74
+ <td>14</td>
75
+ </tr>
76
+ <tr>
77
+ <td>15</td>
78
+ <td>16</td>
79
+ <td>17</td>
80
+ <td>18</td>
81
+ <td>19</td>
82
+ <td>20</td>
83
+ <td>21</td>
84
+ </tr>
85
+ <tr>
86
+ <td>22</td>
87
+ <td>23</td>
88
+ <td>24</td>
89
+ <td>25</td>
90
+ <td>26</td>
91
+ <td>27</td>
92
+ <td>28</td>
93
+ </tr>
94
+ </table>
95
+ ```

1

th対応

2016/10/05 08:27

投稿

yambejp
yambejp

スコア117846

answer CHANGED
@@ -1,14 +1,16 @@
1
1
  ```javascript
2
2
  $(function() {
3
- $(".js-dow").on("change", function() {
3
+ $('.js-dow').on('change', function() {
4
4
  var flg=$(this).prop('checked');
5
- var dow=$(".js-dow").index(this);
5
+ var dow=$('.js-dow').index(this);
6
- $("#t1 tr").each(function() {
6
+ $('#t1 tr').each(function() {
7
- $(this).find('td').eq(dow).toggleClass('selected',flg);
7
+ $(this).find('td,th').eq(dow).toggleClass('selected',flg);
8
8
  });
9
9
  }).change();
10
10
  });
11
11
 
12
12
  ```
13
13
 
14
- ※一応tableを確定させるためにtableにid="t1"を指定してください。
14
+ ※一応tableを確定させるためにtableにid="t1"を指定してください。
15
+ ※thも対象ですか?軽微な修正なのでソースを修正しときました
16
+ find('td')→find('td,th')