将onClickhtml标记中的标准重构为侦听器,我的代码面临问题:
onClick
var td; for (var t=1;t<8;t++){ td = document.getElementById('td'+t); if (typeof window.addEventListener==='function'){ td.addEventListener('click',function(){ console.log(td); })} }
当td单击元素时,假定单击的td是循环中的最后一个索引,例如7Lookslike,eventListeners仅填充了此循环中的最后一个元素,循环初始化看起来正确,为什么会这样呢?
td
7
eventListeners
您需要将事件侦听器的分配包装在闭包中,例如:
var td; for (var t = 1; t < 8; t++){ td = document.getElementById('td'+t); if (typeof window.addEventListener === 'function'){ (function (_td) { td.addEventListener('click', function(){ console.log(_td); }); })(td); } }