我只是在学习jQuery。 我需要使用jQuery动态创建一个表,它工作正常。问题是我需要一个sum字段,它根据新添加的行自动更新。 我在这方面取得了成功,但它在新行的值上添加了已经总和的值。 现在我添加了一个按钮,当我点击它时,总和值是正确的,但是第二次击中它会在结果上添加所有行...
这是我的代码:
<table id="packagetopack">
<thead><tr class="titlerow">
<th style="height:60px;vertical-align: middle">Artikel</th>
<th style="height:60px;vertical-align: middle"> Menge</th>
<th style="height:60px;vertical-align: middle"> Volumen</th>
</tr></thead>
<tbody>
<tr class="totalrow"><td class="totalCol"></td><td class="totalCol"></td><td class="totalCol"></td></tr>
</tbody>
</table>
和jQuery:
$('#mengeneingabe').click(function() {
$('#packagetab').show();
var productName;
productName = $('#selectionbox').val();
var productQuant;
productQuant = $('#mengeneingabe').val();
var productvolume;
productvolume = $('#volumen').html();
var volumetotal;
volumetotal = productvolume * productQuant;
var result = volumetotal.toFixed(2);
$('#packagetopack > tbody:last').append('<tr><td class="rowDataSd">'+productName+'</td><td class="rowDataSd">'+productQuant+'</td><td class="rowDataSd">'+result+'</tr>');
});
var totals=[0,0,0];
$('#berechnenbutton').click(function(){
var $dataRows=$("#packagetopack tr:not('.totalrow, .titlerow')");
$dataRows.each(function() {
$(this).find('.rowDataSd').each(function(i){
totals[i]+=parseFloat( $(this).html());
});
});
$("#packagetopack td.totalCol").each(function(i){
$(this).html("total:"+totals[i]);
});
});
我做错了什么?
感谢您的帮助!
答案 0 :(得分:2)
变量总数应该在你的函数范围内,如下所示:
$('#berechnenbutton').click(function(){
var totals=[0,0,0];
这样每次通话都会启动。