Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么事件侦听器只在for循环中创建的最后一个元素上注册?_Javascript_Html_For Loop_Event Handling_Innerhtml - Fatal编程技术网

Javascript 为什么事件侦听器只在for循环中创建的最后一个元素上注册?

Javascript 为什么事件侦听器只在for循环中创建的最后一个元素上注册?,javascript,html,for-loop,event-handling,innerhtml,Javascript,Html,For Loop,Event Handling,Innerhtml,我使用JavaScript创建复选框,将onchange侦听器添加到复选框中,并使用循环将其添加到div中。但是,只有最后一个复选框注册了事件侦听器 为什么会这样 var div=document.getElementById(“mydiv”); 对于(变量i=0;i

我使用JavaScript创建复选框,将
onchange
侦听器添加到复选框中,并使用循环将其添加到div中。但是,只有最后一个复选框注册了事件侦听器

为什么会这样

var div=document.getElementById(“mydiv”);
对于(变量i=0;i<5;i++){
div.innerHTML+=(“
”+i); var输入=document.createElement(“输入”); input.type=“checkbox”; input.onchange=函数(){ 警惕(“foo”); }; div.appendChild(输入); }

使用
元素添加到
div
。innerHTML
属性删除现有的事件处理程序,因为它确实在这样做

div.innerHTML = (div.innerHTML + '<br>' + i);