Symbol.iterator不是表单元素的函数

时间:2016-03-18 15:31:50

标签: ecmascript-6 babeljs polyfills

尝试使用<form>和Babel迭代for..of元素时出现以下错误:

  

测试[Symbol.iterator]不是一个函数。 (在   'testSymbol.iterator','test [Symbol.iterator]'未定义)

我在页面上有babel-polyfill。迭代NodeListArray和其他元素很好,问题似乎是<form>元素。

以下代码在Chrome v49中正常运行:

for(const x of test) {
console.log(x);
}
<form id="test">
  <input>
  <input>
  <input>
</form>

但是,在需要polyfilled的浏览器中,我收到错误消息。这是一个jsFiddle,它可以重现这个问题。

哪种实施方法正确?这是 babel-polyfill 中的错误吗?

1 个答案:

答案 0 :(得分:0)

我和你有同样的问题。

最后,我这样解决:

const List= document.querySelectorAll('.my-class');
for(let i=0,i<List.length,i++){
   console.log(List.item(i))
}

出错的代码:

 const List= document.querySelectorAll('.my-class');
for(let i of List)
{
    console.log(i);
}