2013-02-10 46 views
0

我有3个span标签,它们包含每件物品和运费的价格。我需要将三个span标签一起添加到使用jQuery的总价格中。这里是我的代码:使用jquery将值加在一起

<div id="relative"> 
    <div id="absolute"> 
     Widget 1: <span id="widget_1_price">$99.99</span><br /> 
     Widget 2: <span id="widget_2_price">$14.99</span><br /> 
     Shipping Fee: <span id="shipping_price">$10.00</span><br /> 
     <b>Total: <span id="total_price"></span></b> 
    </div> 
</div> 

我尝试了几种方法,但似乎没有为我工作。

+1

请发表您已经尝试了什么。 – 2013-02-10 17:25:48

回答

2

通过元素循环和解析其中的文本,并把它们相加:

var sum = 0; 
$('#widget_1_price,#widget_2_price,#shipping_price').each(function(){ 
    sum += parseFloat($(this).text().substr(1)); 
}); 
$('#total_price').text('$' + Math.round(sum * 100)/100); 

演示:http://jsfiddle.net/QTMsE/

+1

是的,虽然理想的做法是从'span'中删除'$',所以JS对标记的细节有一点依赖性...... – lonesomeday 2013-02-10 17:25:14

+1

*之前乘以'100' *数字。你知道,浮点精度。 – 2013-02-10 17:27:04

+0

Sum.toFixed(2)请! – mplungjan 2013-02-10 17:36:58

0
var val1 = parseFloat($("#widget_1_price").text().substring(1)); 
var val2 = parseFloat($("#widget_2_price").text().substring(1)); 
var shipping = parseFloat($("#shipping_price").text().substring(1)); 

var all = val1 + val2 + shipping; 
$("#total_price").text("$"+all); 

试试这个。

0

试试这个:

total = parseFloat($('#widget_1_price').text().slice(1))+ 
     parseFloat($('#widget_2_price').text().slice(1))+ 
     parseFloat($('#shipping_price').text().slice(1)); 

$('#total_price').text('$'+total); 
+0

更新了答案感谢指出。 – Jai 2013-02-10 17:34:00