在JS中为按钮分配相同功能的最佳方法?

时间:2019-02-06 12:41:53

标签: javascript jquery html arrays button

我想知道如何优化当前代码。 我使用创建项目时生成的按钮来增加/减少表中的值。该按钮被推入一个数组中,此数组将迭代该数组中的所有按钮,并根据其ID为它们提供功能。

var increaseButtonArray = [];
var increaseButton = 'increaseButton' + obj.id;
$('#d' + i + 'Content').append('<tr>' + 
'<td><button type="button" id="' + increaseButton + '">...
increaseButtonArray.push(increaseButton);

因为我为每个元素使用4个按钮,所以我不能仅仅给按钮赋予元素的ID,而是使之成为“按钮的名称” +元素的ID。

function increaseButtonFunction() {
        $.each(increaseButtonArray, function (index, obj) {
            $("#" + obj).click(function btnClick() {
                var x = obj.substring(14, 17);
                $.each(list.List, function (k, v) {
                    $.each(v, function (index, obj2) {
                        if (obj2.id == x) {
                            obj2.value = obj2.value+ 1;
                        }
                    });
                });
                drawRow();
            });
        })
    }

要找到按钮,我使用substring(我知道这是一种不好的做法),但是我的代码当前有效,并且该应用程序仅使用<40个元素。

什么是更清洁的解决方案?

更新 工作片段

https://jsfiddle.net/9vh2ebqk/

1 个答案:

答案 0 :(得分:0)

我制作了一个更灵活的inc和dec按钮版本。

`

https://jsfiddle.net/pm01z4of/ `

不了解set和delete应该发生什么,但是我希望它能对您有所帮助。