2014-08-30 26 views
1

我剛剛學習jQuery。 我需要用jQuery動態創建一個表格,它工作正常。問題是我需要一個總和字段,根據新添加的行自動更新。 我在這方面取得了成功,但它在新行的值上添加了所有應有的總和值。 現在我添加了一個按鈕,當我打它,一旦它的和值是正確的,但seccond時間擊中它增加了對結果的所有行...動態創建的表jQuery中列的總和

這裏是我的代碼:

<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]); 
     }); 

    }); 

我在做什麼錯?

謝謝你的幫助!

回答

2

的variale總數應該是你的函數的範圍內,這樣的:

$('#berechnenbutton').click(function(){ 
    var totals=[0,0,0]; 

這種方式重新開始每次呼叫。

+0

非常感謝!這是我沒有嘗試的唯一的事情... – baao 2014-08-30 23:29:36