2013-02-10 45 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