jQuery添加错误

时间:2012-06-05 10:02:41

标签: jquery

我发生了一个奇怪的错误。这是jQuery函数

jQuery(document).ready(function(){
  jQuery("#new_customer").delegate(".kool", "keyup", function(event) {  
    var SelectProd = jQuery('.price, .qty',this);
    var price = jQuery('.price', this).val();
    var qty =   jQuery ('.qty', this).val();
    var amount = price + qty;
    var lineItemWrapperElement = SelectProd.parent().parent();
    jQuery("input.amount", lineItemWrapperElement).val(amount);
  });
 });

而不是添加“+”正在结合。即12 + 1即将成为121似乎是什么问题?任何指导都可以。

5 个答案:

答案 0 :(得分:4)

这是因为你连接了字符串。您必须将变量转换为数字类型。我假设您的价格可以是浮点数,因此您可以使用parseFloat()函数:

var amount = parseFloat(price) + parseFloat(qty);

为了确定精确度,您还可以在以下后使用toFixed()

amount = amount.toFixed(2);

答案 1 :(得分:2)

 var amount = parseInt(price, 10) + parseInt(qty, 10);

var amount = parseFloat(price).toFixed(2) + parseInt(qty, 10);

因为,.val()返回字符串属性,而+具有双重添加和串联字符串。这取决于变量的类型。

如果parseFloat()parseInt()取决于您,您希望如何输出。

答案 2 :(得分:2)

您正在连接字符串,因此您必须先将它们转换为数字

var amount = +price + +qty;

答案 3 :(得分:1)

price和qty是一个字符串解析它浮动或任何数字类型

var amount = parseFloat(price) + parseFloat(qty);

答案 4 :(得分:1)

var amount = parseFloat(price).toFixed(2) + parseInt(qty, 10);