我已经为这个问题苦苦挣扎了很长时间了.我有一个数组,我将在按钮单击时将数字推到[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() {
// ...
});
}());