我在互联网资源管理器中的" of" of" of"部分中遇到了此错误 SCRIPT1004: Expected ';'
。是否有解决这个问题的解决方法?
for(item of workstationData.coPathColumns) {
var builtId = '#icat-' + item;
if(!!$(builtId)[0].innerText) {
$(builtId)[0].parentNode.hidden = false;
}
}
正如BRK评论的,即不支持的,请在此处查找详细信息。
您可以使用forEach
或简单的for
循环。我更喜欢简单的for
循环,因为它不是基于callback
的循环(异步),而forEach
则采用callback
函数。
for(let i =0; i< workstationData.coPathColumns.length; i++) {
item = workstationData.coPathColumns[i]; //assuming item is defined before, otherwise use let item = ...
var builtId = '#icat-' + item;
if(!!$(builtId)[0].innerText) {
$(builtId)[0].parentNode.hidden = false;
}
}
Internet Explorer不支持for ... of
循环。
如下所示:MDN文档
此外,我建议您检查功能或功能集是否支持您必须支持的浏览器,在这种情况下,Internet Explorer,请检查Caniuse.com
您的代码:
for(item of workstationData.coPathColumns) {
var builtId = '#icat-' + item;
if(!!$(builtId)[0].innerText) {
$(builtId)[0].parentNode.hidden = false;
}
}
可以转换为传统的for
循环:
for(var i = 0; i < workstationData.coPathColumns; i++) {
var builtId = '#icat-' + workstationData.coPathColumns[i];
if(!!$(builtId)[0].innerText) {
$(builtId)[0].parentNode.hidden = false;
}
}
另外,如果您自动化此"移动"过程,那么很高兴。因此,请仔细观察babel
。将代码粘贴到babeljs.org
产生以下输出 - 该输出应等于您的for...of
循环,将其转移到es2015-loose
标准中:
"use strict";
for (var _iterator = workstationData.coPathColumns, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
if (_isArray) {
if (_i >= _iterator.length) break;
item = _iterator[_i++];
} else {
_i = _iterator.next();
if (_i.done) break;
item = _i.value;
}
var builtId = '#icat-' + item;
if (!!$(builtId)[0].innerText) {
$(builtId)[0].parentNode.hidden = false;
}
}