jQuery计算所有文本字段中的值之和


75

我有一个包含大约30个包含数字值的文本字段的订单。我想计算所有这些值的总和。

我知道如何选择所有文本字段,但不知道如何遍历它们并求和所有值?

$(document).ready(function(){
   $(".price").blur(function() {
    //loop and add up every value from $(".price").val()
   })
});

1
看看JQuery的每个功能(api.jquery.com/each
拉扎勒斯

6
只是想知道一件事。为什么上面提到的被问到的人没有被问到他所做的研究工作。由于发布的问题没有显示任何研究工作或至少他做了什么尝试,特别是在该问题不是非常棘手和复杂的问题时。上述问题的解决方案可以是Google轻松获得22票赞成。投票没有问题,但是研究工作如何?是否要求Stack积分少的成员进行研究工作?
山姆M

Answers:





5

类似地,将这些答案写成插件:

$.fn.sum = function () {
    var sum = 0;
    this.each(function () {
        sum += 1*($(this).val());
    });
    return sum;
};

记录1 * x比Chrome中的Number(x)快



1

这应该解决它:

var total = 0;   
$(".price").each( function(){
          total += $(this).val() * 1;
});

5
这将连接从.val()返回的字符串。
Marko Dumic 2010年

Anon用户的建议是使用以下内容:var total = 0; $(".price").each( function(){ total += $(this).val() * 1; });
Fluffeh 2012年

0
$(".price").each(function(){ 
total_price += parseFloat($(this).val()); 
}); 

请尝试这样...


1
我不确定您是否"2 apples" + "3 oranges" => 5
要这样做

我有一个包含大约30个包含数字值的
JSobell 2014年

我不确定Marko为什么您会认为他的方法除了增加值外还用于其他任何事情。
Mike Bethany 2014年

0
$('.price').blur(function () {
    var sum = 0;
    $('.price').each(function() {

        if($(this).val()!="")
         {
            sum += parseFloat($(this).val());
         }

    });
        alert(sum);
});​​​​​​​​​

JS小提琴


0

这将100%起作用:

<script type="text/javascript">

function calculate(){
var result = document.getElementById('result');
var el, i = 0, total = 0; 
while(el = document.getElementById('v'+(i++)) ) {
el.value = el.value.replace(/\\D/,"");
total = total + Number(el.value);
}
result.value = total;
if(document.getElementById('v0').value =="" && document.getElementById('v1').value =="" && document.getElementById('v2').value =="" ){
 result.value ="";
}
}
</script>
Some number:<input type="text" id ="v0" onkeyup="calculate()"><br>
Some number:<input type="text" id ="v1" onkeyup="calculate()"><br>
Some number:<input type="text" id ="v2" onkeyup="calculate()"><br>
Result: <input type="text" id="result" onkeyup="calculate()"  readonly><br>

嗨,欢迎来到Stack Overflow。当回答已经有很多答案的问题时,请确保对您提供的回答为何具有实质性意义而不是简单地呼应原始张贴者已经审查过的内容,添加一些其他见解。
chb
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.