forEach通过一个处理DOM元素的数组

Kes*_*ern 4 javascript foreach

我遇到了简单JS代码的奇怪行为.元素通过一个处理.

var a = document.getElementsByClassName('nahren');
Array.prototype.forEach.call(a, function(e) {
    e.classList.remove('nahren')
})
Run Code Online (Sandbox Code Playgroud)

关于JSFiddle的例子

Ama*_*dan 10

返回的集合getElementsByClassName是"实时":如果您更改它们以使它们从选择器中取消资格,它们将从集合中消失.这使得对它们的迭代很不稳定.使用querySelectorAll('.nahren'),返回"死"集合,或通过克隆来固定"实时"集合:

var deadArray = Array.prototype.slice.call(liveCollection);
deadArray.forEach(...)
Run Code Online (Sandbox Code Playgroud)