2016-11-03 47 views
0

我有用於計算HTML表格中的值的代碼。 它的工作原理,如果我用。(點),而不是當我用,(逗號)如何計算表中有空格的數字和逗號的值

也有我的號碼有空間,如果超過1000 例如更大數量的2 476,98

我怎樣才能使它工作作爲我需要?

的Javascript:

var totals = [0, 0, 0, 0, 0, 0]; 
$(document).ready(function() { 
    var $dataRows = $("#sum_table tr:not('.totalColumn, .titlerow')"); 
    $dataRows.each(function() { 
     $(this).find('.rowDataSd').each(function (i) { 
      totals[i] += parseFloat($(this).html()); 
     }); 
    }); 
    $("#sum_table td.totalCol").each(function (i) { 
     $(this).html("kopā: " + totals[i].toFixed(2)); 
    }); 
}); 

在這裏,其對jsfiddle

+0

'.replace(//g,「」).replace(/,/ g,「。」)' – ASDFGerte

+0

'parseFloat'用於轉換字符串看起來像一個數字 - 也就是說。 '2476.98'。用','它會將它轉換爲'2476'。爲了解決這個問題,將'','''''和空格清空,即''parseFloat($(this).html()。replace(「,」,「。」)。replace(「」,「」 ))' – eithed

+1

可能的重複[轉換爲點或逗號作爲小數點分隔符到JavaScript中的數字的字符串](http://stackoverflow.com/questions/7431833/convert-string-with-dot-or-comma-as-decimal -sparator-to-number-in-javascript) –

回答

2

您需要檢測,.和空間0123拆換by nothing ""

在此行中

totals[i] += parseFloat($(this).html()); 

通過此替換:

totals[i] += parseFloat($(this).text().replace(",",".").replace(/ /g, "")); 

/ /g是正則表達式來檢測一個字符串多個空格。示例「1 932 123」將轉換爲「1932123」

+0

不錯,工作:)讓我試試代碼 –

+1

是的,這是一個:)謝謝 –

3
<script> 
    var totals = [0, 0, 0, 0, 0, 0]; 
    $(document).ready(function() { 
     var $dataRows = $("#sum_table tr:not('.totalColumn, .titlerow')"); 
     $dataRows.each(function() { 
      $(this).find('.rowDataSd').each(function (i) { 
       totals[i] += parseFloat($(this).text().replace(/[^\d.-]/g, '')); 
      }); 
     }); 
     $("#sum_table td.totalCol").each(function (i) { 
      $(this).text("kopā: " + totals[i].toFixed(2)); 
     }); 
    }); 
</script> 
+0

結果應該是2 361,94不是235897.00 :( –

1

var totals=[0,0,0,0]; 
 
$(document).ready(function(){ 
 

 
    var $dataRows=$("#sum_table tr:not('.totalColumn, .titlerow')"); 
 
    
 
    $dataRows.each(function() { 
 
     $(this).find('.rowDataSd').each(function(i){   
 
      totals[i]+=parseFloat($(this).html().replace(/[^0-9.]/g, '')); 
 
     }); 
 
    }); 
 
    $("#sum_table td.totalCol").each(function(i){ 
 
\t 
 

 
    
 
     $(this).html("kopā: "+totals[i].toFixed(2)); 
 
    }); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table id="sum_table" border="1"> 
 
\t \t \t \t \t <tr class="titlerow"> 
 
\t \t \t \t \t \t <td align="center">plan1 
 
\t \t \t \t \t </tr> 
 
\t \t \t \t \t <tr class="titlerow"> 
 
\t \t \t \t \t \t <td align="center">EUR \t \t \t \t \t 
 
\t \t \t \t \t </tr> 
 
\t \t \t \t \t <tbody> 
 
\t   <tr> \t \t 
 
\t \t \t \t \t \t \t <td class="rowDataSd" align="right" nowrap>2 358,94 
 
     </tr> 
 
     <tr> 
 
\t \t \t \t \t  <td class="rowDataSd" align="right" nowrap>3 
 
     </tr> 
 
     <tr> \t 
 
      <td class="totalCol"></td> 
 
     </tr> \t \t 
 
</tbody></table>

+0

結果應該是2 361, 94不是235897.00 :( –

相關問題