【问题标题】:Best way to assign the same function to buttons in JS?为JS中的按钮分配相同功能的最佳方法?
【发布时间】:2025-11-25 20:55:03
【问题描述】:

我想知道如何优化我当前的代码。 我使用在创建项目时生成的按钮,它会增加/减少其在表格中的值。按钮被推入一个数组,这个数组遍历这个数组中的所有按钮,并根据它们的 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();
            });
        })
    }

为了找到我使用子字符串的按钮(我知道这是不好的做法),但我的代码目前可以工作并且应用程序只使用

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

更新 工作片段

https://jsfiddle.net/9vh2ebqk/

【问题讨论】:

  • 听起来像codereview.stackexchange.com 是解决这类问题的更好地方,*(相当)是关于不起作用的代码。无论如何,有趣的问题。
  • 我同意 codereview 是一个更好的地方,但请注意:您可能需要一个模板引擎。也许看看小胡子

标签: javascript jquery html arrays button


【解决方案1】:

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

`

https://jsfiddle.net/pm01z4of/ `

不明白 set 和 delete 究竟应该发生什么,但无论如何我希望它对你有所帮助。

【讨论】: