jQueryでプルダウンの年計算を作っているのですがどうしてもわからないところがあります。
javascript
1$(function() { 2for (var i = 2017; i >= 1900; i--) { 3$(' .year').append('<option value="' + i + '">' + i + '</option>'); 4 } 5for (var i = 1; i <= 12; i++) { 6$(' .month').append('<option value="' + i + '">' + i + '</option>'); 7 } 8for (var i = 1; i <= 31; i++) { 9$(' .day').append('<option value="' + i + '">' + i + '</option>'); 10 } 11$('.year').change(function () { 12 leapYearCheck(); 13 }); 14$('.month').change(function () { 15 leapYearCheck(); 16 }); 17 }); 18 19// うるう年 20function leapYearCheck() { 21$(' .day').empty(); 22var y = $(' .year').val(); 23var m = $(' .month').val(); 24if (2 == m && (0 == y % 400 || (0 == y % 4 && 0 != y % 100))) { 25var last = 29; 26} else { 27var last = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)[m - 1]; 28 } 29for (var i = 1; i <= last; i++) { 30$(' .day').append('<option value="' + i + '">' + i + '</option>'); 31 } 32 }
html
1<?php for ($x = 0; $x < 3; $x++) : ?> 2<tr> 3<td><input type='text' name='num[<?= $x ?>']> 4</td> 5<td id="BOW<?= $x ?>"> 6<select class='year' name='year[<?= $x ?>]'></select> 7<select class='month' name='month[<?= $x ?>]'></select> 8<select class='day' name='day[<?= $x ?>]'></select> 9</td> 10</tr> 11<?php endfor; ?>
これにいまだとclassを指定しているためひとつのところを変えると複数変わってしまいます。
これをIDをテーブルのtdのほうに連番で置いたのでこれを指定したいのですがjQueryのほうでどうやって繰り返し処理をしたらいいのかわからず止まっています。
できるだけ短い文にしたいのですがなにかいい案があるでしょうか?
ちなみにhtmlのほうは上下にしっかりtbodyなどテーブルを作っています
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/24 14:54
退会済みユーザー
2017/07/24 15:00
2017/07/24 15:06
退会済みユーザー
2017/07/24 22:17
2017/07/25 02:34