计算表行JavaScript JavaScript的总值

时间:2017-12-08 06:52:34

标签: javascript jquery

我刚刚学会了一个月前的网页设计,我学习和学习都很慢,无论如何这是我的理由。我有一行有5列,但我只想从这些列计算3,这是我的jQuery代码

function sumrow(){
$(".isitable").on('keyup','.nsakit, .npuasa, .mnormal', function(){
    var $row=$(this).closest("table tr");
    var jumlahns=parseInt($row.find('.nsakit').val());
    var jumlahnp=parseInt($row.find('.npuasa').val());
    var jumlahmn=parseInt($row.find('.mnormal').val());
    $row.find('.totalqty').val(jumlahns + jumlahnp + jumlahmn);
});}

当我使用<div>时,它确实有效,但当我尝试使用<table>时, 根本不起作用,<table class="isitable">这是表格的一部分

<tbody>   
    <tr id="nmr0" name="roworder">
    <td>
      1
    </td>
    <td>
      <select name="shiftid" class="form-control">
            <option selected disabled value="">-Select An Option-</option>
            <option value="Normal Shift">Normal Shift</option>
            <option value="Long Shift">Long Shift</option>
        </select>
    </td>
    <td>
      <select name="breakid" class="form-control">
            <option selected disabled value="">-Select An Option-</option>
            <option value="break1">11.45-12.15</option>
            <option value="break2">20.30-21.00</option>
            <option value="break3">18.00-18.45</option>
            <option value="break4">00.00-00.30</option>
            <option value="break5">07.00-07.30</option>
        </select>
    </td>
    <div class="rownumber">
    <td>
      <input id="A0" type="text" min="0" class="nsakit" value="">
    </td>
    <td>
      <input id="B0" type="text" min="0" class="npuasa" value="">
    </td>
    <td>
      <input id="C0" type="text" min="0" class="mnormal" value="">
    </td>
    <td>
      <input id="D0" type="text" min="0" class="totalqty" value="">
    </td>
    </div>
    <td><input type="checkbox" name="recordi"></td>
  </tr>

</tbody>

我的javascript代码应该更改,以便能够计算总数

1 个答案:

答案 0 :(得分:0)

closest 遍历DOM中给定元素的祖先

因此,当它遍历父元素时,它会检查作为selector方法的参数给出的closest是否与元素匹配。要匹配行是否匹配表tr,它需要进一步向上遍历选择器失败的位置。

您只需要tr代替table tr

var $row = $(this).closest("table tr");