日期 jquery 函数无法对表行工作



逻辑是首先在每行中选择一个开始日期,然后单击按钮,结果日期将根据跳过日期显示。由于某种原因,我的代码不起作用,有什么想法吗?谢谢

$(".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());

最新更新