Symbol.iterator不是函数 [英] Symbol.iterator is not a function

查看:105
本文介绍了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

未捕获的TypeError:ele [Symbol.iterator]不是函数

Uncaught TypeError: ele[Symbol.iterator] is not a function

如何解决此问题?

推荐答案

NodeList转换为Array以使其呈可迭代形式,请使用

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不是函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆