找到了两个针对php的解决方案,但找不到针对javascript的解决方案。

基本上,我想为页面上的30个按钮制作一堆事件监听器。目前它是这样写的:

problem1buttonEl.addEventListener("click", problem1);
problem2buttonEl.addEventListener("click", problem2);
problem3buttonEl.addEventListener("click", problem3);
problem4buttonEl.addEventListener("click", problem4);


现在,我想做一个for循环来使它更干净,像这样:

for (var problemIncrement = 1; problemIncrement <= 30; problemIncrement++) {
'problem' + problemIncrement + 'buttonEl'.addEventListener("click",
'problem' + problemIncrement);
}


问题是我需要在变量中添加字符串,并使它们的结果也成为变量,因为问题xbuttonEl就是这样。

有什么办法吗?

最佳答案

您可以使用方括号表示法[]来获取这些变量,通常应在window对象中定义它们,因此代码应如下所示:

for (var problemIncrement = 1; problemIncrement <= 30; problemIncrement++) {
    window['problem' + problemIncrement + 'buttonEl'].addEventListener("click",
    window['problem' + problemIncrement]);
}


在这里window['problem' + problemIncrement + 'buttonEl']指的是您已经定义的变量。

10-04 21:47