我正在使用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
答案 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。