javascript-无法在提交之间清空数组

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

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() {
        // ...
    });

}());

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: <span id=&quot...
jQuery 添加水印 <script src="../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...