2012-05-10 40 views
4

我有這樣的如何在javascript/jquery中添加字符串美元金額?

$4.00 
$5.00 
$55.90 

文本字段,我想將它們添加在JavaScript中一共有$ 64.90

我有這樣的代碼

var total= ""; 
$("input:checkbox:not(.select_all):checked").closest("tr").each(function() { 
    total += $(this).find(".amount").text().trim(); 
    }); 

我的解決方案給我這

$4.00$5.00$55.90 

任何想法,我在做什麼錯

+2

你必須剝去'$'標誌和parseInt函數他們,你可以做整數加法。一旦有什麼地方在JS字符串,它往往停留在一個字符串,那麼你正在做的是concatentation –

+2

@MarcB:敢肯定你想要做parseFloat,這樣你就浮點加法 – vol7ron

回答

7

你連接字符串,你需要首先解析爲數字。你必須去除$才能做到這一點。你也想初始化總數達到0,而不是空的字符串:

var total = 0; 
$("input:checkbox:not(.select_all):checked").closest("tr").each(function() { 
    total += parseFloat($(this).find(".amount").text().trim().replace(/^$/, '')); 
}); 

// If you want total to be a string containing the `$` just convert it back: 
total = '$' + total; 
+0

或者只是把'+',而不是'parseFloat '^ _ ^'+ 「10」 === 10 // TRUE' –

+2

@Derek:我認爲你錯過了點。但是我假設你說,因爲他剝離了'$',並且你說如果你這樣做,不需要執行'parseFloat'。 – vol7ron

+0

@ vol7ron,我的意思是,他可以代替'parseFloat()'和'+()'因爲它們都變成字符串轉換成數字。 –