首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

详解NodeList 和 HTMLCollection 和 Array

用一遍就知道: entries(): 调用entries方法会返回一个iterator(迭代器),关于iterator/iterable可以参见MDN,简单点说就是返回了一个可以遍历的对象,而这个对象实现了...iterable protocal,所以需要用for...of遍历,所以我们可以: var divs = document.querySelectorAll('div'); for(var item of...keys(): 返回一个iterator用于遍历NodeList的key: var divs = document.querySelectorAll('div'); for (var key of list.keys...values(): 和keys()类似,返回一个iterator用于遍历NodeList的value,即html元素: var divs = document.querySelectorAll('div...通过对NodeList的研究我们发现,NodeList和Array没有继承关系,但是都有length属性和forEach方法,而且拥有几个特有的方法,主要都是用来遍历和取值用的。

2.4K40

JavaScript 学习-28.元素与节点(HTMLCollection 和 NodeList)

为什么有时候返回HTMLCollection ,有时候返回NodeList? HTMLCollection 和  NodeList 的区别又是什么?带着这些问题进入本篇的学习。...DOM提供两种集合对象,用于实现这种节点的集合:NodeList和HTMLCollectionHTMLCollection 是表示 HTML 元素的集合。...对象 HTMLCollection只能包含 元素节点(ElementNode)类型的节点, 以下方法返回HTMLCollection对象 document.getElementsByClassName...HTMLCollection.namedItem(name) 或 HTMLCollection[name] 使用示例,以下两种方法都可以 // namedItem 根据id 或name属性取值 console.log...与NodeList区别 HTMLCollection 是表示 HTML 元素的集合,元素也是节点的一种,也就是元素节点,NodeList 是表示节点的集合 我们可以理解为 HTMLCollection

1.8K21
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Web APIs】DOM 文档对象模型 ② ( 根据标签名获取 DOM 元素 - getElementsByTagName 函数 | 获取指定标签下的 DOM 元素 )

    遍历及使用 在上面的章节 , 通过 调用 Document 或 Element 的 getElementsByTagName 函数 , 可以获取到 封装了多个 Element DOM 元素的 HTMLCollection...对象 ; HTMLCollection 对象是 时刻 动态改变的 , 如果 HTML 文档结构发生了改变 , HTMLCollection 对象会进行自动更新 , 如果要操作 HTMLCollection...; var elements = document.getElementsByTagName("div"); // 遍历 HTMLCollection 中封装的 DOM...document.getElementsByTagName("div"); // 控制台打印获取结果 console.log(elements); // 遍历...element.getElementsByTagName("div"); // 控制台打印获取结果 console.log(elements); // 遍历

    7410

    通过几个事例,就可以说明 for...of 循环在 JS 是不可或缺

    类似数组遍历 for...of 除了可以遍历对象外,还可以遍历类似数组的对象。 arguments是函数体内的特殊变量,表示包含函数的所有参数,arguments 也是一个类似数组对象。...字符串字符的遍历 JavaScript 中的原始类型字符串是可迭代的。因此,我们可以轻松地遍历字符串的字符。...遍历普通 JavaScript 对象 遍历普通 JS 对象的属性/值对总是很痛苦的。...然后,对于for...of循环,遍历元组,并将每个元组解构const [prop,value]。 7.遍历 DOM 集合 你可能知道在 DOM 中使用HTMLCollection是多么令人沮丧。...因为HTMLCollection是一个类似数组的对象(而不是一个常规数组),所以我们不能使用常规数组方法。 例如,每个 DOM 元素的children属性都是HTMLCollection

    1.1K50

    【春节日更】小技巧 — 如何将类数组转成数组

    Array.prototype.push, splice : Array.prototype.splice } 注:若类数组对象没有写push方法,则调用时即会报错 常见的类数组有 arguments 和 HTMLCollection...arguments); } var list1 = list(1, 2, 3); // [1, 2, 3] 方法二: Array.from() 是ES6中新增的方法,可以将两类对象转为真正的数组:类数组对象和可遍历...'1':'b', '2':'c', length:3 }; var arr = Array.from(arrayLike);//['a','b','c'] //demo2 // 把HTMLCollection...同样是ES6中新增的内容,扩展运算符(…)也可以将某些数据结构转为数组 //arguments对象的转换 function list(){ return [...arguments]; } //HTMLCollection...对象的转换 [...document.getElementsByTagName('p')] 扩展运算符实际上调用的是遍历器接口,如果一个对象没有部署此接口就无法完成转换

    67410

    图的遍历 --- 广度优先遍历

    广度优先遍历思路: 还是以之前深度优先遍历的图为例,如下: A B C D E F G H A[0, 1, 0, 0, 0, 1, 0, 1] B[1, 0, 1, 0, 0, 0,...1, 0] F[1, 0, 0, 0, 0, 0, 1, 0] G[0, 1, 0, 0, 1, 1, 0, 0] H[1, 0, 0, 1, 0, 0, 0, 0] 所谓广度优先,就类似二叉树的层序遍历...所在行所有未被访问过的1对应的顶点,发现没有; 接着搞A的第三个邻接顶点H所在的行,输出H所在行所有未被访问过的1对应的顶点,即D; A所在的行搞完了,就搞B、D、E……H所在的行,重复上面的操作,最终的遍历结果是...vertex的索引 int vertexIndex = vertexList.indexOf(vertex); // 从(priorVertexIndex + 1)开始遍历二维数组的第...(currentVertex, neighborVetex); } } } } /** * 广度优先遍历

    1.4K10

    图的遍历 --- 深度优先遍历

    在讲深度优先遍历之前,先来回顾一下图这种数据结构。 1. 是什么? 图,也是一种数据结构,其节点可以具有零个或者多个相邻元素,两个节点之间的连接称为边,节点也称为顶点,图表示的是多对多的关系。 ?...无向图的遍历: (1). 遍历分类: 图的遍历分为两种: 深度优先:depth first search,简称DFS。...类似于二叉树的层序遍历,具体的本文不做介绍。 (2). 深度优先算法步骤: 以开篇中的图为例: 访问A,并将A标记为已访问; 找到A的第一个未被访问邻接顶点,怎么找?...看矩阵: A B C D E F G H A[0, 1, 0, 0, 0, 1, 0, 1] 第一个1对应的是B,所以A的第一个邻接顶点是B,所以第二个遍历出来的是B,并且标记B为已访问...比如我要找A的第一个邻接顶点,那就遍历A所在的那一行,找到第一个1出现位置的索引,该索引对应的就是A的第一个邻接顶点。

    1.4K20
    领券