Ajax只需要第一个TD来计算总和

时间:2017-03-11 07:16:15

标签: javascript ajax

我有一种情况需要根据TD id =“amount”来计算总和,这将重复/重复几次。 Ajax仅从第1个TD获取值,而忽略rest。

// ajax part

function CalculateMonthlySalary() {
  var tot = 0;
  $("#amount").each(function() {
    tot += parseInt($(this).text());
    $("#divEstimatedMonthlySalary").html(addCommas(tot.toFixed(0)))
  });
}
<tr data-row-id="1" class="sum">
  <td class="editable-col" contenteditable="true" col-index='1' oldVal="Basic Salary">Basic Salary</td>
  <td id="amount" onkeyup="CalculateMonthlySalary();" class="editable-col" contenteditable="true" col-index='2' oldVal="2000.00">2000.00</td>
</tr>


<tr data-row-id="2" class="sum">
  <td class="editable-col" contenteditable="true" col-index='1' oldVal="Housing Allowance">Housing Allowance</td>
  <td id="amount" onkeyup="CalculateMonthlySalary();" class="editable-col" contenteditable="true" col-index='2' oldVal="2000.00">2000.00</td>
</tr>


<tr data-row-id="3" class="sum">
  <td class="editable-col" contenteditable="true" col-index='1' oldVal="Transport Allowance">Transport Allowance</td>
  <td id="amount" onkeyup="CalculateMonthlySalary();" class="editable-col" contenteditable="true" col-index='2' oldVal="1000.00">1000.00</td>
</tr>




<div class="Heading2">Total Monthly Salary</div>
<div style="clear:both;"></div>
<br>
<div style="margin-left:20px;" id="divEstimatedMonthlySalary" class="Web1">0</div>

知道我做错了吗?

3 个答案:

答案 0 :(得分:1)

只需将自定义属性amount添加到您的td代码中即可。

<!-- Like this -->
<td amount ....>xxx</td>

//使用自定义属性 amount

更改功能中的选择器
function CalculateMonthlySalary(){
    var tot=0;
    //"#amount" to "td[amount]"
    $("td[amount]").each(function() {   
        tot += parseInt($(this).text()); 
    $("#divEstimatedMonthlySalary").html(addCommas(tot.toFixed(0)))
    });
}

答案 1 :(得分:0)

这样做是因为你使用的是ID,而不是类。 ID仅用于一个元素。将其更改为一个类,然后遍历每个类以使其工作。

答案 2 :(得分:0)

id在网络文档中应该是唯一的。 Javascript也假定这一点,因此在找到与id匹配的元素后忽略每个元素。

您应该使用类名来代替选择td。