【发布时间】:2012-10-22 00:43:41
【问题描述】:
这对我来说很奇怪。一些小的语法错误或其他东西。只需将两个变量的值相加并将它们附加到第三个变量。
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。
更新:
字是值不是整数,所以它们是附加的。不必做一些花哨的字符串整数翻转,有没有办法让我从一开始就将数据属性作为整数获取?
谢谢!
【问题讨论】:
-
确定你没有
total = '5'或类似的东西吗?如果一个是字符串,它将连接而不是添加。 -
这里返回 10 jsfiddle.net/j08691/gNZh9
-
只需使用
.data()方法而不是.attr()-.data()会尽一切努力正确地对值进行类型转换,而.attr()只返回一个字符串。此外,您只需要使用.data('cost')而不是.attr('data-cost')。