从数组中删除值,用新的数组总数更新html或'$'如果没有总计
Remove value from array, update html with new array total or '$' if no total
我有两个输入,借方和贷方,点击一个按钮,它们会更新一个名为"借方"的数组。借方增加正值,贷方增加负值。
然后,我将数组中的值求和为变量"totalDebits",并使用该变量更新"totalOutput"的html。
我的目标是单击图标[-],当删除借项时,从数组中减去该值并更新总输出。当信用被移除时,它应该从数组中添加或移除负值。
我试着用接头。()和.inArray()方法,但由于某种原因,当我删除借项时,它会清空整个数组。
这是我尝试过的片段,还有一个jsFiddle,这样你就可以看到问题了。
//CLOSE BUT NO CIGAR, -
$(document).ready(function()
{
$(document).on('click','.fa-minus-square',
function()
{
var thisVal = Number($(this).parent().attr('value'));
if ($(this).parent().hasClass('debitItem')){
debits.splice($.inArray(thisVal, debits) ,1 );
$(this).parent().remove();
console.log(debits);
} else if ($(this).parent().hasClass('creditItem')) {
debits.splice($.inArray(-thisVal, debits) ,1 );
$(this).parent().remove();
};
}
);
});
https://jsfiddle.net/agraymd/pbtof136/4/
当查看控制台时,它似乎做了我想做的事情,但在它删除了单击的借项的值后,它一直在删除,直到数组为空。
我可以自己更新totalOutput,但我删除了这部分代码,因为它没有正确更新数组。
我希望我的解释清楚,并使用正确的术语。我还是个新手:)
这里有一个新的fiddle,我把借方或贷方的反向值添加到借方数组中,而不是删除它。不过我觉得删除它会更好。https://jsfiddle.net/agraymd/pbtof136/
在对整个匹配集进行设置之前,需要解除现有onclick事件处理程序的绑定。就好像按钮被再次点击了n次(n=在此之后添加的条目数),但实际上函数被再次调用了n次,因为它被分配给了点击事件n次。
更改此项:
$(document).on('click','.fa-minus-square',
function()
{
...
});
至:
$('.fa-minus-square').unbind().click(function()
{
...
});
我对这把小提琴做了适当的改动。
相关文章:
- 创建一个数组数组,没有任何重复的Javascript
- 为什么我的数组长度没有增加
- 敲除可观察数组并没有更新从数组中移除元素的视图
- MD 数组:如果未找到值,则添加其他数组
- JavaScript 头和尾在数组上没有突变
- 返回在数组中没有重复项的唯一元素
- 想知道为什么我的JQuery数组循环没有设置我的href's正确
- 第一个100个素数javascript,为什么在我的素数数组之后没有定义
- Rethinkdb追加到数组如果存在
- 过滤淘汰可观察数组时没有数据存在
- 迭代数组到数组,没有重复项
- 对于数组有没有更简单的解决方案
- 新的数组属性没有添加到javascript对象中
- Do数组默认没有原型
- 数组值没有传递给插件
- 为什么表单提交后$_POST数组中没有来自select控件的选中元素的值
- Javascript:循环数组.如果找到匹配项,则推送到数组,如果没有,则创建新的innerarray
- javascript回调后数组中没有项
- javascript数组长度没有显示在我的控制台日志中
- Javascript字符串到数组(如果字符串没有任何空格)