1

我在 .each() 上处理了一些 dom 节点,并在通过它们 parseFloat 之后提取它们的值。

在 .each 中,我试图使用一些数学来将输出变量的总和相加。

如何做到这一点?

看看我在这里说什么:

http://jsfiddle.net/LpHbk/1/

请使用您的控制台查看 .each() 在 dom 中的内容。

4

2 回答 2

3

如果要添加数字,则必须在某个地方 使用+.

var re = /.*\$/g;
var total = 0;

$("#dropDowns select option:selected").each(function() {
    var ourValue = $(this).text();
    var basePrice = re.test(ourValue) ? parseFloat(ourValue.replace(re, ''), 10) : 0;
    total += basePrice;
});

$("#finalValue").text("$" + total);

另外,干掉那个代码!http://jsfiddle.net/mattball/uhUHt

于 2012-05-13T06:02:34.637 回答
1

我会确保使选择器更加具体,以便仅包含select您实际想要包含的元素。

$("select").on("change", function(){
  var price = 0;
  $("select option:selected").each(function(){
    price += parseInt( this.value.match( /\$(\d+\.\d+)/ )[1] , 10 );
  });
  alert( '$' + price.toFixed(2) );
})

演示:http: //jsbin.com/amubew/2/edit

于 2012-05-13T06:07:16.643 回答