这个对我来说很奇怪。一些小的语法错误或其他东西。只需添加两个变量的值并将它们附加到第三个变量。
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是值不是整数,所以它们是追加的。而不是必须做一些花哨的字符串整数翻转,有没有办法让我从一开始就把数据属性作为一个整数来获取?
谢谢!
答案 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);