逻辑是首先在每行中选择一个开始日期,然后单击按钮,结果日期将根据跳过日期显示。由于某种原因,我的代码不起作用,有什么想法吗?谢谢
$(".add").on('click', function() {
var $row = $(this).closest('tr');
var start = $row.find('.date').val());
if (start) {
var set = new Date(start);
set.setDate(set.getDate() + Number($row.find(".day").val()));
$row.find(".result").val([set.getMonth() + 1, set.getDate(), set.getFullYear()].join('/'));
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<table id="one">
<th>Date</th>
<th>Skip days</th>
<th>Result</th>
<tbody>
<tr>
<td>
<input type="date" class="date"><button class="add" type="button">OK</button></td>
<td><input type="text" value="3" class="day"> </td>
<td><input type="text" class="result"> </td>
</tr>
<tr>
<td>
<input type="date" class="date"><button class="add" type="button">OK</button></td>
<td><input type="text" value="3" class="day"> </td>
<td><input type="text" class="result"> </td>
</tr>
</tbody>
</table>
您有一个额外的)
: var start = $row.find('.date').val());
$(".add").on('click', function() {
var $row = $(this).closest('tr');
var start = $row.find('.date').val();
if (start) {
var set = new Date(start);
set.setDate(set.getDate() + Number($row.find(".day").val()));
$row.find(".result").val([set.getMonth() + 1, set.getDate(), set.getFullYear()].join('/'));
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<table id="one">
<th>Date</th>
<th>Skip days</th>
<th>Result</th>
<tbody>
<tr>
<td>
<input type="date" class="date"><button class="add" type="button">OK</button></td>
<td><input type="text" value="3" class="day"> </td>
<td><input type="text" class="result"> </td>
</tr>
<tr>
<td>
<input type="date" class="date"><button class="add" type="button">OK</button></td>
<td><input type="text" value="3" class="day"> </td>
<td><input type="text" class="result"> </td>
</tr>
</tbody>
</table>
删除此行最后的)
var start = $row.find('.date').val());