下面的代码工作完全正常的Chrome和Firefox,但不是在边缘:微软边缘区块范围问题
HTML:
<ul>
<li class="listItems">one</li>
<li class="listItems">two</li>
<li class="listItems">three</li>
</ul>
的Javascript:
var listItems = document.querySelectorAll('.listItems');
for (let i = 0; i < listItems.length; i++) {
let element = listItems[i];
element.addEventListener('click', function() {
alert('Clicked on number: ' + i)
});
}
当你点击在Chrome/Firefox中分别获得0,1,2的列表项是正确的。在Edge中,您始终获得相同的数字(超过for循环),这表示程序段作用域不起作用。任何想法Edge有什么问题或如何解决这个问题?
您也可以在各自的浏览器中测试jsFiddle。
这不是块范围的问题,但带有迭代范围,Edge <14中不支持该范围。 – zeroflagL
@zeroflagL,这不再是最近版本的Edge中的repros。 – Sampson