javascript - jQuery .each 函数不保留全局变量

标签 javascript jquery

我有一个函数,我希望运行 .each 循环并返回值的运行总计

在我的 .each 函数末尾,amountSold 变量为 0,并且在 .each 循环期间,它显示为未定义。我做错了什么?

function processChange(currentTarget) {
    var amountSold = 0;  //VARIABLE DECLARED
    //limit these operations to the currentlySelected tab
    var availableFundContainer = $(currentTarget).closest(".available-content").parent();

    var fundBeingSold = $(availableFundContainer.children(0)).attr('data-investment-code');

    availableFundContainer.find('.available-handler').each(function (index, val) {       
        var origVal = $(this).attr('data-original-value');
        var currentSliderVal = $(this).next('.available-content').find('.slider').slider("value");
        var amountSold = amountSold + (origVal - currentSliderVal); //PROBLEM LINE!!!!!
....}

最佳答案

您正在each回调函数内创建一个本地范围的变量,也称为amountSold。

替换

var amountSold = amountSold + (origVal - currentSliderVal); //PROBLEM LINE!!!!!

amountSold += (origVal - currentSliderVal); //PROBLEM LINE!!!!!

关于javascript - jQuery .each 函数不保留全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37703855/

相关文章:

php - 如何在不同的表上选择相应的数据?

javascript - 选择时表单中的重复字段

javascript - 防止 div 被其下方的 div 碰撞时向上滚动?

javascript - 如何将固定宽度和 "custom-resizeable"长度设置为 Spring <form :textarea/>?

javascript - 在 Javascript 中使用按钮退出 for 循环

jquery - React.js 与 jQuery/UI 组件配合得很好吗

javascript - 如果选中复选框则禁用输入

javascript - 将filter()和reduce()组合成仅reduce() -JavaScript

javascript - 重写 Backbonejs 模型获取函数

jquery - 键盘覆盖 webapp 中的文本输入(iOS)