【问题标题】:Combining retrieved values with javascript and jquery [duplicate]将检索到的值与javascript和jquery结合起来[重复]
【发布时间】:2012-11-03 10:47:33
【问题描述】:

可能重复:
How do I Convert a String into an Integer in JavaScript?

我有一个包含产品选项的选择元素。我想要实现的是当他们选择一个选项时,页面上的价格会自动调整。我已经想出了如何检索这些值,但是当我将它们组合起来时,它只是将两个数字放在一起,而不是实际相加。

例如,当我有 50 + 10 时,它不会输出 60,而是输出 5010。

我的代码:

$('.product_options').change(function(){
var base_price = $('#base_price').html();
var add_price = $(this).find("option:selected").data('price');

var new_price = base_price+add_price;

console.log(new_price);

$('.current_price').html(base_price+add_price);

});

有没有办法可以将它们都转换为整数,以便实际执行操作?

提前致谢!

【问题讨论】:

  • 您可以使用一些技巧,例如乘以 1 来强制进行数字转换,或者您可以使用 parseInt()

标签: javascript jquery


【解决方案1】:

使用parseInt

$('.product_options').change(function(){
var base_price = parseInt($('#base_price').html(), 10); // 10 as second argument will make sure that base is 10.
var add_price = parseInt($(this).find("option:selected").data('price'), 10);

var new_price = base_price+add_price;

console.log(new_price);

$('.current_price').html(base_price+add_price);
});

【讨论】:

    【解决方案2】:

    试试:

    var base_price = +$('#base_price').html();
    var add_price = +$(this).find("option:selected").data('price');
    

    见强大:Mozilla's Arithmetic Operators Reference - Unary Negation

    【讨论】:

    • 我不知道..!这适用于所有浏览器吗?
    • @BillyMoon:它是 EMCAScript 规范的一部分。
    【解决方案3】:

    您从 DOM 中提取的任何值都将是字符串,并且需要转换为数字类型才能对它们进行数学运算。

    parseInt( ... ) 是一个内置的 javascript 函数,如果字符串仅由数字组成,它会将字符串转换为整数。

    如果需要十进制数,可以使用parseFlaot

    var new_price = parseInt(base_price)+parseInt(add_price);
    // new_price is now set to the sum of `base_price` and `add_price`
    

    【讨论】:

      【解决方案4】:

      使用 parseFloat 或 parseInt

      $('.product_options').change(function(){
        var base_price = $('#base_price').html();
        var add_price = $(this).find("option:selected").data('price');
      
        var new_price = parseFloat(base_price) + parseFloat(add_price);
      
        console.log(new_price);
      
        $('.current_price').html(base_price+add_price);
      });
      

      【讨论】:

        【解决方案5】:

        是的。

        intval = parseInt(string)
        

        就是你要找的。​​p>

        【讨论】:

          猜你喜欢
          • 2012-08-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-07-22
          • 2013-12-12
          • 2016-05-04
          • 1970-01-01
          • 2013-12-27
          相关资源
          最近更新 更多