我正在制作一个关于产品(颜色等)的选择的脚本,它适用于除Internet Explorer(11)和Edge之外的所有浏览器.
我将每个参数的选择放在一个数组中,并使用该array.forEach()方法将一个函数应用于它们.
颜色参数的示例:
var color_btns = document.querySelectorAll('#color > p');
color_btns.forEach(function(color) {
color.onclick = function () {
color_btns.forEach(function(element) {
if (element.classList.contains('selected')) {
element.classList.remove('selected');
}
});
color.classList.add('selected');
document.querySelector('#f_color').value = color.dataset.id;
};
});
Run Code Online (Sandbox Code Playgroud)
我在IE和Edge的控制台中得到以下输出:
对象不支持属性或方法'forEach'
在搜索了这个问题后,我了解到IE 9及更新版本应支持此功能.我试图自己定义功能但没有成功.当我记录该函数时,它被定义为一个函数([native code]内部带有" ").
我用一个替换.forEach了for它,它工作得很好,
forEach()针对Internet Explorer和Edge的特定用法?我以为它是Array.prototype.forEach最新版本的IE(和所有版本的Edge)都有它......?