javascript - 提交之间不能清空数组

标签 javascript jquery html arrays

我已经为这个问题苦苦挣扎了很长时间。我有一个数组,我将在单击按钮时将数字推送到 [2,6,8] 之类的数组。我尝试通过单击另一个按钮清空提交之间的数组,但我没有成功。有人可以指出我的错误吗?即使我在那之后多次尝试格式化和更改它,该数组也会继续打印第一个结果。数据索引也在 DOM 中正确更改。我也尝试在#accept click 开始时清空数组,但没有效果。

var mediaArray = [];

$( "#clearAll" ).click(function() {
        mediaArray = [];
        console.log("i can see this");
});

$( "#accept" ).click(function() {
        var firstRound = true;
        var mediaLength = 0;
        var eachData = 0;
        $( ".slots" ).each(function(index) {
            if (!firstRound) {
                mediaLength++;
                if ($(this).data('index') != eachData) {
                    mediaArray.push(mediaLength);
                    mediaLength = 0;
                }
            }
            eachData = $(this).data('index');
            firstRound = false;
            console.log($(this).data('index'));
        });
        mediaArray.push(mediaLength+1);

        console.log(mediaArray);
});

最佳答案

这很简单。这是因为每次调用点击处理程序时您的 firstRound 都为 true

要修复它,您可能希望将 firstRound 作为全局变量,但这通常是不需要的,在这种情况下您可以使用 IIFE 使其成为本地变量:

(function() {

    var firstRound = true;

    $( "#accept" ).click(function() {
        // ...
    });

}());

关于javascript - 提交之间不能清空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36792126/

相关文章:

javascript - 如何根据另一个属性更改特定位置的 JSON 对象?

javascript - 使用 JavaScript 将 SVG 文档动态插入 HTML?

javascript - 为什么这仍然返回一个 promise ?

php - 如何使用 jquery 选择特定字段

javascript - 如何设置数组以便在不使用 jQuery 的情况下获取单选按钮值

html - 基本样式位令人惊讶地没有被应用

javascript - 如何在javascript函数中传递日期作为参数

javascript - 类型错误 : Cannot read property 'id' of undefined in nodejs

javascript - 在原地创建一个永久窗口,但变化增加了

HTML5 和 CSS3 的 JavaScript 检查器