欢迎光临散文网 会员登陆 & 注册

将Node List转换为数组

2023-08-06 17:04 作者:十三他很帅  | 我要投稿

querySelectorAll 方法会返回一个被称为 node list 的类数组对象。虽然这些数据结构看上去像数组,但它们并没有具备像 mapforeach 这样的数组方法。那么,如何将这个类数组对象转换成 DOM 元素的真正数组呢?下面,我们提供一种快捷、安全且可重复使用的解决方案:

在这里,apply 方法可以在指定 this 对象的同时,以数组形式传递参数给函数。根据 MDN 的规定,apply 可以接受类数组对象作为参数,这对于 querySelectorAll 返回的结果来说恰到好处。当我们不需要指定函数内部的 this 值时,只需将第一个参数设置为 null0 即可。最终得到的结果,就是一个具有全部数组方法的 DOM 元素数组。

此外,你还可以结合使用 Array.prototype.sliceFunction.prototype.callFunction.prototype.apply 方法,将类数组对象作为 this 参数传入:

如果你正在使用 ES2015,那么可以直接利用展开运算符 ... 来实现这一操作:

在这三种方法中,你可以选择最适合你当前项目和工作流程的方式来进行操作。无论选择哪种方式,关键的目标都是将 node list 转换为真正的数组,以便充分利用数组所提供的各种功能和操作。通过这种转换,你的代码将变得更加简洁,更容易理解和维护。

将Node List转换为数组的评论 (共 条)

分享到微博请遵守国家法律