Ну сам,
forEach () фактически работает на IE11 , просто будьте осторожны с тем, как вы его называете.
querySelectorAll () - это метод, который возвращает NodeList .
А в Internet Explorer foreach () работает только с объектами Array . (Работает с NodeList с ES6, не поддерживается IE11) .
Чтобы это исправить, некоторые посоветовали бы полифил, который мог бы отлично работать, но вы также можете просто преобразовать свой NodeList в массив с помощью метода slice.call (): (Объяснено здесь)
var alltable = document.querySelectorAll('*[id^="table_"]'); //Select all elements with the id starting by "table_"
var alltableArray= Array.prototype.slice.call(alltable);
alltableArray.forEach(function(element) {
// Do some code
});
Или:
var alltable = Array.prototype.slice.call(document.querySelectorAll('*[id^="table_"]')); //Select all elements with the id starting by "table_"
alltable.forEach(function(element) {
// Do some code
});
Подводя итог:
Убедитесь, что вы используете его для объекта Array, а не для NodeList.
Надеюсь, что это может кому-то помочь.