【问题标题】:Symbol.iterator is not a function [duplicate]Symbol.iterator 不是函数[重复]
【发布时间】:2016-06-07 10:25:45
【问题描述】:
<div id="par">
    <span id="a1"></span>
    <span id="a2"></span>    
<div id="par2">     
    <span id="a3"></span>
    <span id="a4"></span>
</div>    
</div>

<script>


var ele = document.querySelectorAll('#par span');    

for( var p of ele ){
    console.log(p);
}


</script>

当我运行这段代码时,我看到了错误

未捕获的类型错误:ele[Symbol.iterator] 不是函数

如何解决这个问题?

【问题讨论】:

  • @Rajesh:不,你不能为他们使用for in
  • @Bergi 你是对的。我很抱歉。

标签: javascript ecmascript-6


【解决方案1】:

NodeList 转换为Array 使其成为可迭代的形式,使用Array.from() 进行转换。

<div id="par">
  <span id="a1"></span>
  <span id="a2"></span>
  <div id="par2">
    <span id="a3"></span>
    <span id="a4"></span>
  </div>
</div>


<script>
  var ele = document.querySelectorAll('#par span');

  for (var p of Array.from(ele)) {
    console.log(p);
  }
</script>

请参阅以下问题以获取更多信息:Are HTMLCollection and NodeList iterables?

【讨论】:

  • @zloctb : 很高兴帮助你:)
猜你喜欢
  • 2019-12-07
  • 1970-01-01
  • 1970-01-01
  • 2016-06-22
  • 1970-01-01
  • 2019-05-30
  • 2020-03-22
  • 2020-06-26
  • 2020-12-18
相关资源
最近更新 更多