在javascript中,如何在for循环中分配onclick?
整个过程都在一个js文件中,并立即从我的html文件链接 按照计划,所有的按钮都应该出现并且可以点击,但实际上只有一个按钮是可见的,当我点击它时,这个按钮不起作用 当我创建了很多面向div的按钮时,我希望我可以运行for loop,并能够将它们分配为可点击的,而不是写尽可能多的行在javascript中,如何在for循环中分配onclick?,javascript,html,Javascript,Html,整个过程都在一个js文件中,并立即从我的html文件链接 按照计划,所有的按钮都应该出现并且可以点击,但实际上只有一个按钮是可见的,当我点击它时,这个按钮不起作用 当我创建了很多面向div的按钮时,我希望我可以运行for loop,并能够将它们分配为可点击的,而不是写尽可能多的行 在javascript中,如何在for循环中分配onclick 您正在调用函数而不是分配它 function Mclick(id){alert(id);} 当然,现在您的函数将接收一个事件参数,而不是id(在循环中传
在javascript中,如何在for循环中分配onclick 您正在调用函数而不是分配它
function Mclick(id){alert(id);}
当然,现在您的函数将接收一个事件参数,而不是id(在循环中传递id是一件非常痛苦的事情;最简单的修复方法是不用费心尝试)。但是它还将附加元素作为this
,这很方便:
getElementById(cbox[i].id).onclick = Mclick;
其他意见:
innerHTML
。让你不用担心逃跑。改用textContent
onclick
有点不灵活;您只能以这种方式分配一个单击处理程序,并且很难注意到您是否意外地重写了现有的处理程序。使用getElementById(element.id)
肯定应该等同于element
/…
或/**/代码>
Mclick
绿色,因为它认为这是一个类名function Mclick() {
alert(this.id);
}
函数initnav(){
var cbox=document.getElementsByClassName('box');
对于(变量i=0;i
因此基本上不调用for循环,因为for循环在函数中。如果要调用for循环中的所有变量和语句,请将语句放入函数中,并在函数外部但在脚本内部调用函数。第1步是在JavaScript代码中使用JavaScript注释。非常感谢Eevee。这很有帮助。这并不能真正回答问题。对不起,你需要什么
function Mclick() {
alert(this.id);
}
function initnav() {
var cbox = document.getElementsByClassName('box');
for(var i = 0; i < cbox.length; i++) {
cbox[i].textContent = cbox[i].id;
cbox[i].addEventListener('click', alert_id);
}
}
function alert_id(event) {
alert(this.id);
}