从数组中删除值,用新的数组总数更新html或'$'如果没有总计

Remove value from array, update html with new array total or '$' if no total

本文关键字:数组 如果没有 html 更新 删除      更新时间:2024-04-07

我有两个输入,借方和贷方,点击一个按钮,它们会更新一个名为"借方"的数组。借方增加正值,贷方增加负值。

然后,我将数组中的值求和为变量"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() 
            {
              ...
            });

我对这把小提琴做了适当的改动。