我有一种情况需要根据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>
知道我做错了吗?
答案 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。