我希望每秒循环按钮30次我有一个数组,其中列出了按钮
function Btn_check(){
for(var i in buttons){
var buttons_name = [];
buttons_name[i] = buttons[i].name+'_Btn';
document.getElementById(buttons_name[i]).onclick = function() {
//do something here
}
}
}
setInterval(Btn_check(), 1000/30);
在我的HTML中我只有一个像这样的按钮列表
<a href="#" id="1_Btn" class="button">1</a>
<a href="#" id="2_Btn" class="button">2</a>
<a href="#" id="3_Btn" class="button">3</a>
//etc...
总是当我点击一个按钮时,它认为我点击了页面上的最后一个按钮
答案 0 :(得分:1)
不确定您要做什么。看起来你正在循环“按钮”的对象属性 - 这是不清楚应该是什么按钮。并且不确定为什么你需要一个button_names数组,如果正确获取,按钮应该为你提供节点及其属性 - 假设按钮是所有带有classname按钮的元素。
所以这是我为你想要完成的事情付出的最大努力:
var buttons = document.querySelectorAll(".button");
function Btn_check(){
for(var i=0; i<buttons.length; i++) {
buttons[i].onclick = (function(n) {
return function() {
alert(buttons[n].getAttribute("id"));
}
})(i);
}
}
setInterval(Btn_check(), 1000/30);