简单的jquery总和

我有未知数量的输入字段,有类“添加”我只是想用jquery来总结这些,不知道我错在哪里。

     

`

 function add(){ val = 0; $(".add").each(function() { str = (parseInt(this.value)) sum=str+str }); alert (sum) } 

`

你永远不会真正添加东西:

 function add() { var sum = 0; $(".add").each(function() { sum += +this.value; }); return sum; // an add function shouldn't really "alert" } 

如果打算只支持整数,请使用parseInt(this.value, 10) [注意基数参数]而不是+this.value

 function add() { var sum = 0; $(".add").each(function() { var str = this.value.trim(); // .trim() may need a shim if (str) { // don't send blank values to `parseInt` sum += parseInt(str, 10); } }); return sum; } 

见http://jsfiddle.net/alnitak/eHsJP/

 function add(){ var sum = 0; $(".add").each(function() { var val = parseInt($(this).val(), 10) sum += (!isNaN(val) ? val : 0); }); alert(sum); } 

编辑:锐利的眼睛,得到括号…… =)和空间。

如果您不需要支持IE8,那么您可以使用本机Javascript Array.prototype.reduce()方法。 您需要先将JQuery对象转换为数组:

 function add() { return $('.add').toArray().reduce(function(sum,element) { return sum + Number(element.value); }, 0); } 

参考: https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce