使用Javascript以文本形式对货币值执行算术运算

时间:2010-03-22 12:56:59

标签: javascript jquery math

我正在使用JQuery来获取div的内容,它只包含一个美元的价格,我想为它增加99美元,但它的文本,所以当我这样做时,它将无法正常工作。

$('#price_' + part[0]).text($('#price_' + part[0]).text() + 99);
//Changes the div contents to $10099 - if it the contents was $100 to start with

所以问题是如何添加数值?

全部谢谢

修改

请注意,有些数字可以包含逗号,即$ 1,200

4 个答案:

答案 0 :(得分:2)

获取数字子字符串并将其转换为数字:

$('#price_' + part[0]).text("$" + (+($('#price_' + part[0]).text()).substring(1) + 99)); 

注意使用一元+运算符将字符串转换为数字,并使用substring来获取字符串中第一个($)字符后的所有内容。

<小时/> 的更新

既然你提到这个值可以包含一个逗号,那么你最好还是稍微分解一下并执行字符串替换:

var div    = $('#price_' + part[0]);  // get a ref to the div

// replace occurrences of `$` or `,`, cast to a number and add 99
var amount = +div.text().replace(/[$,]/g, '') + 99;

// set the new text to the div
div.text("$" + amount);

答案 1 :(得分:1)

这样的事情应该有效

 var str = $(...).text();
 var sum = parseInt(str.replace(/\D/g, ""));
 $(...).text("$" + (sum + 99))

答案 2 :(得分:0)

使用parseInt:

var price = $('#price_' + part[0]);
price.text(parseInt(price.text()) + 99);

答案 3 :(得分:0)

在进行算术

之前,你必须将文本转换为int / float
$('#price_' + part[0]).text( parseInt( $('#price_' + part[0]).text() ) + 99);
如果需要/想要,请使用parseFloat代替parseInt。