【问题标题】:Add two dynamic values using jQuery使用 jQuery 添加两个动态值
【发布时间】:2017-08-25 06:18:12
【问题描述】:

我写了一个 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 甚至总和等于zeroilm_selected 也有值zero

if(sum < ilm_selected || sum==''){
   //some code
}

请帮忙,在此先感谢。

【问题讨论】:

  • 使用 parseInt(jQuery(this).val());
  • 你不应该使用 parseInt()。查看我的答案以获取更多信息。
  • 将您的 var sum = ''; 更改为 var sum = 0;。这应该适合你。
  • @Rizwi ,这个解决方案对你有帮助吗?

标签: jquery add


【解决方案1】:

我只是将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);
});

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      试试这个 -

      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()。

      【讨论】:

        【解决方案4】:

        您必须将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">

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-09-07
          • 2013-07-05
          • 2020-04-13
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多