我正在尝试获取多个字段的值并将它们加在一起,但在我的测试中我遇到了问题。我有这段代码:
var count;
function calculate() {
// Fix jQuery conflicts
jQuery.noConflict();
count = 0;
jQuery('.calculate').each(function() {
var currentElement = jQuery(this);
var value = currentElement.val();
var count = count + value;
alert(count);
});
}
我在第一个字段中输入值“9”,当第一个警报触发时,我得到“undefined9”;所有其他值当前设置为“0”;当它再次触发时,我总是得到“undefined0”。
为什么我得到“未定义”位以及为什么它只返回当前字段的值而不将它们相加?
最佳答案
您在循环内定义了 count
值,本质上是在每次迭代中首先将其设置为 undefined
。
您想删除循环中的 var
。这样,它就没有匿名函数的作用域,JavaScript 将查看父函数的声明。
首先 parseInt(count, 10)
数字可能也是个好主意,因为 JavaScript 重载了 +
运算符来表示算术加法和字符串连接,并且您不希望 count
为 "0something"
。
最后,count += value
更容易阅读:)
关于javascript - 为什么我的 jQuery 每个循环都没有正确添加值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5293290/