找到了两个针对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']
指的是您已经定义的变量。