使用jQuery添加两个动态值

时间:2017-08-25 06:18:13

标签: jquery add

我写了一个jquery脚本。它连接而不是添加两个值

$(document).on('click','.woocommerce-checkout-review-order input[type="submit"]', function(){
   var sum = '';
   $('.checkout_ilm select').each(function(){
      if(jQuery(this).val()!=''){
         sum += Number(jQuery(this).val());  // Or this.innerHTML, this.innerText
      }
   });
   alert(sum);
});

当所有选择字段中的值为零时,连接值而不是添加。因此,在这种情况下,它会给出 00 而不是 0 。我使用parseIntparseFloat也都有效,但这条件在parseIntparseFloat时返回true,即使sum等于和{{ 1}}也值

ilm_selected

请帮助,提前致谢。

4 个答案:

答案 0 :(得分:2)

我只需将Number替换为parseInt,尝试此解决方案,这将对您有所帮助。

请参阅此链接以获取更多信息:click here

jQuery(document).on('click','.woocommerce-checkout-review-order input[type="submit"]', function(){
    var sum = 0;
    jQuery('.checkout_ilm select').each(function(){
             if(jQuery(this).val()!=''){
             sum += parseInt(jQuery(this).val()); 
        }
    });

    alert(sum);
});

答案 1 :(得分:1)

试试这个 -

jQuery(document).on('click','.woocommerce-checkout-review-order input[type="submit"]', function(){
  var sum = 0;
  jQuery('.checkout_ilm select').each(function(){
    if(jQuery(this).val()!=''){
      sum += parseFloat(jQuery(this).val());
    }
  });
  console.log("Sum: ", sum);
});

你也可以使用parseInt(),但是如果你的值包含十进制,例如20.50,那么它将不起作用,所以最好去parseFloat()。

答案 2 :(得分:1)

您必须使用parseInt()parseInt()函数解析一个字符串并返回一个整数。

sum += parseInt(jQuery(this).val());  // Or this.innerHTML, this.innerText

答案 3 :(得分:0)

您必须将var sum = '';更改为var sum = 0;

这将帮助您获取所有选择框的总和。

您之前的代码是将您转换为数字的选择框的值连接到字符串,因为sum已初始化为''

工作演示

$(document).on('click','input[type="submit"]', function(){
  var sum = 0;
  $('select').each(function(){
      if($(this).val() !== ''){
        sum += Number($(this).val()); 
  }
});
console.log(sum);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
  <option value="1">Volvo</option>
  <option value="20">Saab</option>
  <option value="34">Mercedes</option>
  <option value="7">Audi</option>
</select>
<select>
  <option value="1">Volvo</option>
  <option value="20">Saab</option>
  <option value="34">Mercedes</option>
  <option value="7">Audi</option>
</select>
<select>
  <option value="1">Volvo</option>
  <option value="20">Saab</option>
  <option value="34">Mercedes</option>
  <option value="7">Audi</option>
</select>

<input type="submit" value="Submit">