jQuery添加变量总数

时间:2012-10-22 00:43:42

标签: jquery variables add

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

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且输入为checked,则total等于5.相反,我得到05


更新

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

谢谢!

2 个答案:

答案 0 :(得分:0)

如果这些变量被转换为字符串,那么你需要一个整数强制转换,这就是产生结果的原因。

你只能做total += parseInt(each);

答案 1 :(得分: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);