js中将HTMLCollection/NodeList/伪数组转换成数组的代码

将 HTMLCollection、NodeList、伪数组转换成真正的数组是 JavaScript 中常见的操作,常常用于操作 DOM 元素或者获取一系列的元素,比如在获取 class 为 list 的所有元素后需要对它们进行操作。

使用 Array.prototype.slice.call() 方法

可以通过 Array.prototype.slice.call() 这个方法将 HTMLCollection、NodeList、伪数组转换成真正的数组,这个方法会返回一个新的数组,并且将传递给它的参数作为数组的元素。

下面是具体的代码示例:

const liList = document.getElementsByTagName('li');
const liArray = Array.prototype.slice.call(liList);

console.log(liList); // HTMLCollection
console.log(liArray); // Array

在这个示例中,我们首先通过 document.getElementsByTagName('li') 获取到一个 HTMLCollection,然后对这个 HTMLCollection 调用 Array.prototype.slice.call() 方法,生成了一个真正的数组 liArray。最后我们通过 console.log() 输出了 liList 和 liArray 的值,可以发现 liList 是 HTMLCollection,而 liArray 则是一个真正的数组。

使用 Array.from() 方法

ES6 中新增了 Array.from() 方法,可以将类数组对象或者可迭代对象转换成数组。这个方法与 Array.prototype.slice.call() 不同之处在于,它可以直接将一个类数组对象转换成一个数组,并且还可以更容易地进行一些变换操作。

下面是具体的代码示例:

const list = document.querySelectorAll('.list');
const arr = Array.from(list, item => item.innerText);

console.log(list); // NodeList
console.log(arr); // Array

在这个示例中,我们首先通过 document.querySelectorAll('.list') 获取到一个 NodeList,然后对这个 NodeList 调用 Array.from() 方法,生成了一个真正的数组 arr。在 Array.from() 中我们传递了一个回调函数,对 NodeList 中的每一个元素进行了操作。

通过这两种方法,我们就可以将 HTMLCollection、NodeList、伪数组转换成真正的数组,并对这个数组进行各种操作。在实际开发中,我们可以根据具体的需求来选择使用哪一种转换方式。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js中将HTMLCollection/NodeList/伪数组转换成数组的代码 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • Web打印解决方案之普通报表打印功能

    现在我来详细讲解“Web打印解决方案之普通报表打印功能”的完整攻略。 一、概述 普通报表打印是指在Web页面中,将页面中显示的内容按照固定的格式进行排版,然后生成PDF文件,实现打印功能的需求。普通报表相对于复杂报表而言,通常指打印内容相对简单、排版结构较为固定的报表。 实现普通报表打印通常需要以下步骤: 根据需要打印的内容,设计报表模板; 将数据填充到报表…

    JavaScript 2023年5月28日
    00
  • 使用原生JS添加进场和退场动画详解

    使用原生JS添加进场和退场动画可以通过给元素添加CSS类名来实现。下面是详细的步骤: 创建CSS动画 首先,需要先在CSS中定义好对应的进场或退场动画,例如: .animate-in { opacity: 0; transform: translate(0, 50px); animation-name: fadeIn; animation-duration:…

    JavaScript 2023年6月10日
    00
  • 5种处理js跨域问题方法汇总

    以下是“5种处理js跨域问题方法汇总”的完整攻略: 1. 什么是跨域问题 跨域问题是指在浏览器端,当脚本试图访问来自不同源(域名、端口、协议)的资源时,会出现安全限制,这就是跨域问题。跨域问题对前端开发影响较大,如果不处理的话,可能会出现一些非常棘手的问题。 2. 为什么会出现跨域问题 跨域问题的产生是因为浏览器出于安全考虑而限制了客户端脚本中发起的跨域HT…

    JavaScript 2023年6月11日
    00
  • JS闭包原理及其使用场景解析

    JS闭包原理及其使用场景解析 什么是闭包? 闭包(Closure)指的是有权访问另外一个函数作用域内变量的函数。 用更通俗易懂的话来说,闭包就是函数内部定义的函数,它可以访问自己的变量,还可以访问父级函数的变量。 闭包的原理 在JavaScript中,如果两个函数嵌套的话,内部函数就可以访问外部函数的变量。这是因为在JavaScript中函数会形成一个作用域…

    JavaScript 2023年6月10日
    00
  • JavaScript字符串对象split方法入门实例(用于把字符串分割成数组)

    当我们需要把一个字符串按照某种规则分割成一个数组时,可以使用JavaScript字符串对象的split方法。本文将详细讲解JavaScript字符串对象split方法的使用方法。 split方法基本语法 split()方法的基本语法如下: string.split(separator, limit) 其中,separator参数为分隔符,可以是字符串或正则表…

    JavaScript 2023年5月27日
    00
  • javascript 验证日期的函数

    我们来详细讲解一下如何利用 JavaScript 编写验证日期的函数。 函数基本结构 一个基本的 JavaScript 验证日期的函数应该具有以下结构: function validateDate(input){ // 对传入的参数 input 进行验证 // 如果符合日期格式,则返回 true,否则返回 false return true; // 或者 f…

    JavaScript 2023年5月27日
    00
  • JS函数本身的作用域实例分析

    JS函数本身的作用域实例分析 在JS中,函数拥有自身的作用域,也可以使用父级作用域中的变量。函数本身的作用域指的是在其内部可以访问的变量和函数。本文将详细讲解JS函数本身的作用域,以及两个具体的实例分析。 1. 函数内部作用域 函数内部可以访问的变量有两种,分别是自有变量和父级变量。 1.1 自有变量 自有变量指的是函数内部定义的变量,只能在函数内部访问。例…

    JavaScript 2023年6月10日
    00
  • VBS一键配置VOIP脚本代码

    1. 确定脚本的功能 在编写脚本代码之前,首先需要确定脚本的功能。在这个例子中,脚本的功能是“一键配置VOIP”,也就是帮助用户配置环境以便进行语音通话。具体的配置包括网络设置,软件安装等等。 2. 创建VBS脚本文件 创建一个新的文本文件,然后将文件后缀名改为“.vbs”来创建一个VBS脚本文件。接着,在该文件中编写代码。 3. 编写脚本代码 在脚本代码中…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部