首页 > 解决方案 > 在同一个函数中使用两个类

问题描述

我有两个这样的功能:

1:

$(".soma").blur(function(){

    var total = 0;

    $(".soma").each(function(){
        total = total + Number($(this).val().replace(/\s/g, ''));  
    });
    
    $("#sub").val(total);
});

2:

$(".soma1").blur(function(){

    var total1 = 0;

    $(".soma1").each(function(){
        total1 = total1 + Number($(this).val().replace(/\s/g, ''));  
    });

    $("#sub1").val(total1);
});

我需要获取两者之间的差异并将值实时放入输入中。

我的代码不起作用:

$(".soma").blur(function(){

    var total4 = 0;

    $(".soma").each(function(){
        total4 = total4 + Number($(this).val().replace(/\s/g, ''));  
    });
$(".soma1").blur(function(){
    $(".soma1").each(function(){
        total5 = total5 + Number($(this).val().replace(/\s/g, ''));  
    });
    
    total6 = total4 - total5;

    $("#sub1").val(total6.toFixed(2));
});
});

HTML:

<div class="form-group col-xs-1">                       
  <input type="text" class="form-control1 Preco soma" name="Valor[]" value="0.00" required>
  <span class="form-highlight">$</span>                     
  <span class="form-bar"></span>                        
  <label class="label1" for="Valor">Total</label>        
</div>
<div class="form-group col-xs-2">                       
  <input type="text" class="form-control1 Preco soma1" name="Compra[]" value="0.00" required>
  <span class="form-highlight">$</span>                     
  <span class="form-bar"></span>                        
  <label class="label1" for="Compra">Valor de Compra</label>        
</div>

<div class="form-group col-xs-4" style="float:right; margin-right: 2%; line-height: 2;">                        
  <input type="text" class="form-control1" name="sub" id="sub3" readOnly="true" value="">
  <span class="form-highlight">$</span>                     
  <span class="form-bar"></span>                        
  <label class="label1" for="sub3">Diferença em Valor</label>        
</div>

我不只是单击一个函数,因为它们是两个不同的总和。

标签: javascriptjquery

解决方案


只需一次更改即可完成两项计算。

$(".soma1, .soma").blur(function(){

    var total1 = 0;
    var total = 0;

    $(".soma1").each(function(){
        total1 = total1 + Number($(this).val().replace(/\s/g, ''));  
    });
    $(".soma").each(function(){
        total = total + Number($(this).val().replace(/\s/g, ''));  
    });

    console.log(total - total1);

});

推荐阅读