-1

这对我来说很奇怪。一些小的语法错误或其他东西。只需将两个变量的值相加并将它们附加到第三个变量。

var total = 0;

input.each(function(){

    var thiis = $(this),
        cost  = thiis.attr('data-cost');

    if (thiis.prop('checked')){

        total = total + cost;
    } else {

        total = total - cost;
    }
}

因此,如果cost = 5和 输入等于 5。相反,我得到.checkedtotal05


更新:

Word 是这些值不是整数,所以它们是附加的。不必做一些花哨的字符串整数翻转,有没有办法让我从一开始就将数据属性作为整数获取?

谢谢!

4

2 回答 2

0

如果在某处将这些变量转换为字符串,则需要进行整数转换,这就是结果不正确的原因。

你可以做total += parseInt(each);

于 2012-10-22T00:47:24.380 回答
0

必须将其中一个(或两个)值分配为字符串。如果您经常看到这种情况,您可以通过(强制)转换为数字来避免它:

function add(){
  var total = 0;
  for (var a = 0; a < arguments.length; a++){
    var n = new Number(arguments[a]);
    //console.log(arguments[a] + '=' + n);
    if (isNaN(n)){
      throw "Argument " + a + " is not a number.";
    }
    total += n;
  }
  return total;
}

add('1', 2, 3.5);

这是解决实际问题的方法(如果这些是实际数字,您需要了解为什么它们是字符串),但这将为您提供预期的结果:

total = add(total,each);
于 2012-10-22T00:49:13.093 回答