js新手。请多多包涵,我知道下面的代码很烂,我想知道如何使其更短/更有效。
我有一个由25个按钮组成的数组,我希望每个按钮在单击时都消失,但是在没有为每个按钮创建单独的功能的情况下,我一直想不出办法来做到这一点。
我尝试使用循环将事件侦听器添加到每个按钮,单击该按钮时调用的函数类似于
bns[i].style.visibility = "hidden";
但是我一直遇到一个问题,我是我用来循环的变量,所以到循环结束时,每个按钮都在执行
bns[25].style.visibility = "hidden";
(因为在整个循环的其余部分我都增加到25)
var bns = document.getElementsByTagName("button");
var index = new Array();
bns[0].addEventListener("click", d0);
bns[1].addEventListener("click", d1);
bns[2].addEventListener("click", d2);
bns[3].addEventListener("click", d3);
bns[4].addEventListener("click", d4);
...
bns[24].addEventListener("click", d24);
function d0(){
bns[0].style.visibility = "hidden";
}
function d1(){
bns[1].style.visibility = "hidden";
}
function d2(){
bns[2].style.visibility = "hidden";
}
...
function d24(){
bns[24].style.visibility = "hidden";
}