javascript - 为什么我的 jQuery 每个循环都没有正确添加值?

标签 javascript jquery each

我正在尝试获取多个字段的值并将它们加在一起,但在我的测试中我遇到了问题。我有这段代码:

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/

相关文章:

javascript - 当服务器宕机时,不会返回错误

jQuery 跳过嵌套 .each 中父循环的迭代

javascript - jQuery事件触发器+构造器模式

javascript - 双面锦标赛支架

jQueryeach只影响最后一个元素

javascript - 将 $(this) 传递给 jQuery 中的each() 回调

javascript - jquery .text() 返回 html 标签,我该如何解决这个问题?

Javascript 不适用于 jsfiddle

javascript - jQuery UI .effect() 不适用于 if..else 条件

javascript - 表单提交后正确刷新页面