像数组一样使用NodeList:一个对象组合的有效用法
来源:互联网 发布:淘宝秒杀抢拍器手机版 编辑:程序博客网 时间:2024/05/20 11:23
场景
我是用querySelectorAll()查询了一些标记,并收到了一个NodeList响应。
问题
节点列表类似于数组。(比如:他们都有一个长度属性,它们都在括号中的索引访问它们的属性或者子元素:NodeList[0])尝试使用.map,.filter或者.forEach中的任意一个方法。
方法
各不相同的选项。从循环遍历到数组填充还可以使用更简单的es6方法:
var elements = [... nodelist]
var elements = Array.from(nodelist)
然而,它们都有问题…它们工作的太好了。你现在有了一个数组,而不是节点列表。(现在已经不是一个NodeList了)。当然,它有来自NodeList的所有数据,但它不再被识别为NodeList。
有什么问题吗?
Try:
nodeElementInTheArray.compareDocumentPosition(anotherNodeElementInTheArray)
这将出错,因为参数不是一个真正的NodeListItem。
让我们重新构建我们的需求
我们不需要我们的NodeList来做一个数组,我们只需要数组的属性。这是一个完美的对象组合的地方。
解决办法
Object.assign(*NODELIST*, Object.Array)
我们的节点仍然是节点列表,和它获取我们需要而不修改其原型这些阵列特征。
我没有看到此解决方案在任何地方发表过,也有可能,因为它是永远不会想要的东西。
所以问,如何做NodeList成为数组,问如何能得到 NodeList 像数组,
而答案可能会 ‘Object Composition’
阅读全文
0 0
- 像数组一样使用NodeList:一个对象组合的有效用法
- jQuery如何返回一个类数组对象,js让一个对象的行为像一个数组一样
- 像访问数组一样访问对象
- PHP5 像使用数组一样使用Memcache
- 像C++一样 面向对象的爱情
- PHP的ArrayAccess接口 像数组一样来访问你的PHP对象
- PHP的ArrayAccess接口 像数组一样来访问你的PHP对象
- 做一个像狼一样的男人
- NodeList对象
- php使对象可以像数组一样进行foreach循环
- 让操作javascript对象数组像.net lamda表达式一样
- 如何使对象可以像数组一样进行foreach循环?
- lua怎么像java一样知道一个对象是什么类实例化过来的
- NodeList集合跟Array数组的区别
- 周一的感觉就像失恋一样 周二的感觉就像找不到对象一样
- Delphi7学习(关于像控件数组一样的东西)
- 写一个算法,使对象可以像数组一样进行foreach循环,要求属性必须是私有的(Interator模式的PHP5实现,写一类实现Interator接口)
- 像拍电影一样做软件-组合管理
- VirtualAPK宿主和插件交互解析
- java DES加密工具类
- SingleFragmentActivity
- codefoces730C Bulmart 二分答案+贪心check && 堆维护
- Java的21个技术点,你知道吗?
- 像数组一样使用NodeList:一个对象组合的有效用法
- 51nod 1003 阶乘后面0的数量
- BZOJ 1618: [Usaco2008 Nov]Buying Hay 购买干草
- 摘要: Druid连接池一个设置引发的血案 -- 链接池出现问题
- 搜狐笔试:Kolakoski sequence
- OpenGL/3D图形渲染管线
- idea 配置Tomcat(非Maven项目)
- Android事件分发机制(一)
- Web项目的 UI 自动化测试方案