SCRIPT1004:"For"循环 IE 浏览器中出现预期';'



我在互联网资源管理器中的" 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;
  }
}

相关内容

最新更新