本文解决的问题是 :运用for..of..循环时,edge浏览器报Object doesn't support property or method 'symbol.iterator'问题 以及 符号迭代器(symbol.interator)是什么类型的问题

在ES6中新加了一种数据类型Symbol,在es5中只有六种基本数据类型(undefined number null boolean string Array)和一种复杂的数据类型(object)
简单了解:symbol的值通过symbol函数生成,symbol类型是保证每个属性的名字都是独一无二的,对于一个对象由多个模块构成的情况非常有用。
###在edge浏览器中浏览代码块中含有for ..of..循环的页面时,浏览器会报错Object doesn't support property or method 'symbol.iterator'

因为通过document.querySelectorAll()和document.getElementsByTagName()或者document.getElementsByClassName()选中的元素集合,并不是标准的Array类型,通过() instanceof Array 为false可以判断,
通过在控制台打印的结果可以得到,document.querySelectorAll()得到的object.__proto__为NodeList类型,

此时,需要将Array的symbol.iterator的值赋给Node List的symbol.iterator
NodeList.prototype[Symbol.iterator] = Array.prototype[Symbol.iterator];
对应的通过document.getElementsByTagName或者document.getElementsByClassName()得到的object.__proto__为HTMLCollection类型

此时,需要将Array的symbol.iterator的值赋给HTMLCollection的symbol.iterator,
HTMLCollection.prototype[Symbol.iterator] = Array.prototype[Symbol.iterator];
这时就可以在edge浏览器运行了;

文章借鉴了阮一峰大神的(http://es6.ruanyifeng.com/#docs/iterator)

转载于:https://www.cnblogs.com/oxiaojiano/p/7503960.html

关于querySelector 和 document.getElementsByTagName 选中集合问题相关推荐

  1. document.getElementsByTagName()方法的返回值

    document.getelementsbytagname()方法的返回值 /* document.getelementsbytagname()方法的返回值中取出某个特定的元素.一开始以为它的返回值是 ...

  2. document.getElementsByTagName()返回值

    1. 常见问题 document.getElementsByTagName()返回值样式是[-,-,-],很多人误以为是数组,进而对它调用数组方法如sort(),但是这样会报错:TypeError:x ...

  3. document.getElementsByTagName

    MDN: 返回一个包括所有给定标签名称的元素的HTML集合HTMLCollection. 整个文件结构都会被搜索,包括根节点.返回的 HTML集合是动态的, 意味着它可以自动更新自己来保持和 DOM ...

  4. Document对象内容集合

    document 文挡对象 - JavaScript脚本语言描述 ------------------------------------------------------------------- ...

  5. document.getElementsByName , document.getElementsByTagName ,document.createElement

    document.createElement()是在对象中创建一个对象,要与appendChild() 或 insertBefore()方法联合使用.其中,appendChild() 方法在节点的子节 ...

  6. 【一句话博客】SyntaxError: Failed to execute ‘querySelector’ on ‘Document’: “xxx” is not a valid selector.

    出现了报错 SyntaxError: Failed to execute 'querySelector' on 'Document': "xxx" is not a valid s ...

  7. 最全介绍Document对象内容集合

    document 文挡对象 - JavaScript脚本语言描述 ----------------------- 注:页面上元素name属性和JavaScript引用的名称必须一致包括大小写 否则会提 ...

  8. Web APIs - 总结笔记

    Web APIs - 语法 DOM - 文档对象模型 1. 页面获取元素 1.1 获取单个元素 document.querySelector('选择器') document.body // 选中bod ...

  9. Web前端开发面试考点指南

    Web 前端面试指南与高频考题解析指南 第一章 面试准备:简历编写和面试前准备 一般来说,跳槽找工作要经历投递简历.准备面试.面试和谈 offer 四个阶段.其中面试题目会因你的等级和职位而异,从入门 ...

最新文章

  1. Windows 11 再惹“众怒”!网友:微软就是逼我去买新电脑!
  2. hdu 3863 No Gambling (不会证明,但是是对的,,)
  3. RHEL6入门系列之十一,内/外部命令、重定向、管道
  4. adcetris研发历程_AZ、MSD、吉利德争相布局ADC药物
  5. 详解离线安装Python库
  6. 《Java大学教程》—第24章 Java的背景
  7. 解决 Adobe 系列绿色版本无法打开的问题
  8. GameSalad:率先使用HTML5发布新游戏
  9. 前端页面预览word_页面预览Word
  10. 【黑苹果教程】说点闲话
  11. C语言基本数据类型占内存的大小
  12. 计算存储和网络是推动云计算发展的三驾马车
  13. 选择适合esx服务器的性能,VMWare ESX Server性能调整
  14. QT教程—1.1Qt入门
  15. vue项目中使用Js判断图片是否加载完 所有图片加载完成前展示Loading效果
  16. 微信公众号 php sdk,GitHub - yuanchenglu/wechat-php-sdk: 微信公众平台 PHP SDK
  17. linux文件如何通过vmtools共享到windows,使用vmtools来设置windows和linux的共享文件夹...
  18. 计算机考试报名不了怎么办,2017年国家公务员考试报名系统繁忙怎么办?
  19. 某速的体育视频采集分析
  20. 智工运维定位器技术方案及选型

热门文章

  1. linux搭建--centos使用qemu-kvm,libvirt搭建虚拟机,并搭建libvmi来虚拟机自省(四)
  2. springboot2 war页面放在那_Spring Boot2 系列教程(三十三)整合 Spring Security
  3. iOS应用间相互跳转
  4. AbstractFactory抽象工厂模式(创建型模式)
  5. 手机APP商城系统开发设计方案
  6. 打造具备互补测试技能的团队
  7. RecyclerView解析--onViewDetachedFromWindow()/onViewAttachedToWindow()
  8. zabbix工作流程(自定义添加监控项目)
  9. 深入入门正则表达式(java) - 匹配原理 - 1 - 引擎分类与普适原则
  10. AIX下删除LV后的现场保护和数据恢复方案