无法在提交之间清空数组
Can't empty array between submits
我一直在为这个问题而苦苦挣扎。我有一个数组,我将在按钮单击时将数字推送到类似 [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);
});
这
很简单。这是因为每次调用单击处理程序时都会true
firstRound
。
要修复它,您可能希望将firstRound
作为全局变量,但这通常不是必需的,在这种情况下,您可以使用 IIFE 使其成为本地变量:
(function() {
var firstRound = true;
$( "#accept" ).click(function() {
// ...
});
}());
你应该声明firstRound
是全局的。这将确保它仅在第一轮中设置为true
。现在,每次调用 id #accept
的处理程序onClick
时都会true
它。
相关文章:
- 如何使用Javascript将空数组发送到PHP服务器
- 如果在代码末尾进行求值,jQuery-console.log将提供空数组
- React perf总是打印空数组
- 函数触发时清空数组
- 在javascript中声明空数组
- 为什么空数组上的 indexOf 不返回 -1
- 空数组和排序推送键 JavaScript
- 主干输出用于集合模型的空数组
- 无法在提交之间清空数组
- 如何清空数组
- 将数组的长度设置为 0 似乎不会清空数组
- 如何清空数组
- 清空数组不会;我不使用javascript
- 点击添加到现有数组只是清空数组的原因
- 清空数组后,Angular不会更新
- 清空数组并通过数据绑定提出更改
- 如何使用ES6 array .fill()清空数组
- 使用ImmutableJ清空数组
- 优化Javascript方法来填充或清空数组
- Angularjs在填充数据之前清空数组