我有一个包含大约30个包含数值的文本字段的订单.我想计算所有这些模糊值的总和.
我知道如何选择所有文本字段但不知道如何循环它们并添加所有值?
$(document).ready(function(){
$(".price").blur(function() {
//loop and add up every value from $(".price").val()
})
});
Run Code Online (Sandbox Code Playgroud)
Mar*_*mic 195
$('.price').blur(function () {
var sum = 0;
$('.price').each(function() {
sum += Number($(this).val());
});
// here, you have your sum
});?????????
Run Code Online (Sandbox Code Playgroud)
ube*_*kel 24
为您的项目提供更多通用的复制/粘贴功能.
sumjq = function(selector) {
var sum = 0;
$(selector).each(function() {
sum += Number($(this).text());
});
return sum;
}
console.log(sumjq('.price'));
Run Code Online (Sandbox Code Playgroud)
如果您不需要支持IE8,那么您可以使用本机Javascript Array.prototype.reduce()方法.您需要首先将JQuery对象转换为数组:
var sum = $('.price').toArray().reduce(function(sum,element) {
if(isNaN(sum)) sum = 0;
return sum + Number(element.value);
}, 0);
Run Code Online (Sandbox Code Playgroud)
参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
同样沿着这些作为插件编写的答案的路线:
$.fn.sum = function () {
var sum = 0;
this.each(function () {
sum += 1*($(this).val());
});
return sum;
};
Run Code Online (Sandbox Code Playgroud)
记录 1 * x 比 Chrome 中的 Number(x) 快
| 归档时间: |
|
| 查看次数: |
223504 次 |
| 最近记录: |