本文介绍了Symbol.iterator不是函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

<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>

运行此代码时,我看到错误

When i run this code I see error

如何解决此问题?

推荐答案

NodeList转换为Array以使其呈可迭代形式,请使用 Array.from() 进行转换.

Convert NodeList to Array for make it in iterable form, use Array.from() to convert it.

<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>

有关更多信息,请参考以下问题: HTMLCollection和NodeList可迭代吗?

Refer the following question for more info : Are HTMLCollection and NodeList iterables?

这篇关于Symbol.iterator不是函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-15 20:54